1.環境準備node
# 統一hosts cat /etc/hosts 10.0.0.10 k8s-master 10.0.0.20 k8s-node1 10.0.0.30 k8s-node2 # 同步時間 ntpdate ntp1.aliyun.com # 禁用SELINUX,關閉firewalld和iptables.service,k8s會本身設置iptables網絡策略 systemctl stop iptables.service systemctl disable iptables.service systemctl stop firewalld.service systemctl disable firewalld.service # 關閉swap,修改/etc/fstab文件,註釋掉SWAP的自動掛載,使用free -m確認swap已經關閉 swapoff -a # 調整swappiness參數 # 建立/etc/sysctl.d/k8s.conf文件,添加以下內容 net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 net.ipv4.ip_forward = 1 vm.swappiness=0 # 生效 modprobe br_netfilter sysctl -p /etc/sysctl.d/k8s.conf # 開啓ipvs yum -y install ipvsadm vim /etc/sysconfig/modules/ipvs.modules #!/bin/bash ipvs_mods_dir="/usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs" for i in $(ls $ipvs_mods_dir | grep -o "^[^.]*");do /sbin/modinfo -F filename $i &> /dev/null if [ $? -eq 0 ];then /sbin/modprobe $i fi done chmod +x /etc/sysconfig/modules/ipvs.modules bash /etc/sysconfig/modules/ipvs.modules lsmod | grep ip_vs
2.安裝linux
# 安裝 Docker yum install -y yum-utils device-mapper-persistent-data lvm2 curl -o /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install docker-ce-18.06.1.ce-3.el7 -y # FQ代理無論用了,註釋掉 vim /usr/lib/systemd/system/docker.service #Environment="HTTPS_PROXY=http://www.ik8s.io:10080" Environment="NO_PROXY=127.0.0.1/8,127.0.0.1/16" systemctl daemon-reload systemctl start docker systemctl enable docker cat /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg # 給兩個node分發文件 ssh-keygen -t dsa ssh-copy-id -i ~/.ssh/id_dsa.pub 10.0.0.20 ssh-copy-id -i ~/.ssh/id_dsa.pub 10.0.0.30 for i in 20 30; do scp /etc/yum.repos.d/{docker-ce.repo,kubernetes.repo} 10.0.0.$i:/etc/yum.repos.d/;done # 若是用下面這條命令,就會下載最新版本,這裏咱們用1.13 # yum install -y kubelet kubeadm kubectl yum -y install kubelet-1.13.0 kubeadm-1.13.0 kubernetes-cni-0.6.0 kubectl-1.13.0 # 設置爲開機自啓,先不要啓動該服務.等初始化完成了再啓動 systemctl enable kubelet # 將鏡像先下載到本地 cat pull-images.sh #!/bin/bash images=(kube-apiserver:v1.13.0 kube-controller-manager:v1.13.0 kube-scheduler:v1.13.0 kube-proxy:v1.13.0 pause:3.1 etcd:3.2.24 coredns:1.2.6) for ima in ${images[@]} do docker pull registry.cn-hangzhou.aliyuncs.com/rsq_kubeadm/$ima docker tag registry.cn-hangzhou.aliyuncs.com/rsq_kubeadm/$ima k8s.gcr.io/$ima docker rmi -f registry.cn-hangzhou.aliyuncs.com/rsq_kubeadm/$ima done chmod +x pull-images.sh && ./pull-images.sh # 集羣初始化 vim /etc/sysconfig/kubelet KUBELET_EXTRA_ARGS="--fail-swap-on=false" kubeadm init --kubernetes-version=v1.13.0 --pod-network-cidr=10.244.0.0/16 \ --service-cidr=10.96.0.0/12 --ignore-preflight-errors=Swap ... kubeadm join 10.0.0.10:6443 --token 05blrg.37hx6cwa85giuj5c --discovery-token-ca-cert-hash \ sha256:0a1635e9f31e78317524545faa3dd5957665f8b871b168a605ef523dacbea7bb # 初始化中輸出的kubeadm join 10.0.0.10:6443這句話,保存好,之後要使用這個命令把node加入集羣,而且該命令沒法復現 mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config # 安裝flannel網絡組件(master上執行) kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
初始化k8s集羣git
3.查看信息github
# 查看狀態信息 kubectl get cs # 查看節點信息,狀態爲NotReady,是由於還缺flannel組件,沒有這個組件沒法設置網絡 kubectl get nodes # 查看當前master節點上kube-system名稱空間裏運行的全部pod狀態 kubectl get pods -n kube-system # 全部pod必須保證都是running狀態的,若是哪一個不是,能夠經過相似以下命令查看緣由 kubectl dscrible pods coredns-86c58d9df4-qz9xc -n kube-system # 查看當前節點名稱空間 kubectl get ns # 查看pod詳細狀態 kubectl get pods -n kube-system -o wide kubectl get pods --all-namespaces -o wide
4.node上執行docker
# nodes上能夠不安裝kubectl yum -y install kubelet-1.13.0 kubeadm-1.13.0 kubernetes-cni-0.6.0 systemctl enable kubelet cat pull-images.sh #!/bin/bash images=(pause:3.1 kube-proxy:v1.13.0) for ima in ${images[@]} do docker pull registry.cn-hangzhou.aliyuncs.com/rsq_kubeadm/$ima docker tag registry.cn-hangzhou.aliyuncs.com/rsq_kubeadm/$ima k8s.gcr.io/$ima docker rmi -f registry.cn-hangzhou.aliyuncs.com/rsq_kubeadm/$ima done chmod +x pull-images.sh && ./pull-images.sh docker pull quay.io/coreos/flannel:v0.11.0-amd64 # 執行kubeadm join vim /etc/sysconfig/kubelet KUBELET_EXTRA_ARGS="--fail-swap-on=false" kubeadm join 10.0.0.10:6443 --token 05blrg.37hx6cwa85giuj5c --discovery-token-ca-cert-hash \ sha256:0a1635e9f31e78317524545faa3dd5957665f8b871b168a605ef523dacbea7bb \ --ignore-preflight-errors=Swap
也能夠從這裏下載鏡像registry.cn-hangzhou.aliyuncs.com/google_containersvim
node節點上須要的三個鏡像centos
兩個節點加入masterapi
參考博客:https://www.jianshu.com/p/427162394424bash
參考博客:http://blog.itpub.net/28916011/viewspace-2213536/網絡