kubeadm config images list |sed -e 's#k8s.gcr.io\/coredns#coredns\/coredns#g'|sed -e 's/^/docker pull /g' -e 's#k8s.gcr.io#mirrorgooglecontainers#g'|sh -x
装好的镜像 tag 跟 kubeadm 直接装的是不一样的,这里给予修正:
docker images |grep -E 'mirrorgooglecontainers|coredns/coredns'|awk '{print "docker tag ",$1":"$2,$1":"$2}'|sed -e 's#mirrorgooglecontainers#k8s.gcr.io#2'|sed -e 's#coredns#k8s.gcr.io#3'|sh -x
最后移除掉多余的 tag
docker images |grep -E 'mirrorgooglecontainers|coredns/coredns'|awk '{print "docker rmi ",$1":"$2}'|sh -x
9、配置 net.bridge.bridge-nf-call-iptablescat <<EOF > /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system
然后重启 kubelet
systemctl daemon-reload systemctl restart kubelet
10、创建kubernetes master,只需要在 master 节点(k8s2m)上执行在 master 上执行下面命令创建 kubernetes master,为何加 --pod-network-cidr=10.244.0.0/16 看这里
kubeadm init --pod-network-cidr=10.244.0.0/16
命令执行结束后,根据提示执行如下操作,如果本身是 root 用户,第三条其实不用执行的:
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
下面还有一条如下形式的提示,拷贝出来,在 worker 节点(k8s2n)上需要执行
kubeadm join 172.16.183.151:6443 --token ############## --discovery-token-ca-cert-hash #############################
最后安装 pod network add-on,这里装 flannel,在安装之前这里有如下说明,也是为何
链接地址: https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#tabs-pod-install-4
For flannel to work correctly, you must pass --pod-network-cidr=10.244.0.0/16 to kubeadm init.
安装flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
如果想要查看 pods 或 nodes,分别执行如下命令(另外 pods 就是跑在 docker 上的,也可以通过 docker ps 来查看):
kubectl get pods --all-namespaces kubectl get nodes --all-namespaces
想要查看实时状态还可以执行如下命令,-n2也就是2秒刷新一次结果:
watch -n2 kubectl get pods --all-namespaces watch -n2 kubectl get nodes --all-namespaces
11、将 worker 节点(k8s2n) 加入 master 节点(k8s2m)
最后只需要在 worker 节点(k8s2n)上执行如下命令(在 master 节点 init 结束让存下的命令):
kubeadm join 172.16.183.151:6443 --token ############## --discovery-token-ca-cert-hash #############################
当在master 节点 (k8s2m) 执行 kubectl get nodes ,能看到两个节点,并且状态都是 Ready 的时候,这里的任务也就暂时完成了。
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx