install kubernetes by kubeadm参考
centos7 网络每次重启都需要开启,设置为自动连接
检测网络联通状况
container runtime interface 脚本
因为墙的问题需要将镜像下到本地 镜像列表
# swapoff -a
vim /etc/fstab
# 注释掉 swap那一行
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
参考
注意某些插件需要在kubeadm init
步骤传入相关参数,例如:如果选择 flannel 插件,为了让 flannel 正常工作必须在kubeadm init
时候传入--pod-network-cidr=10.244.0.0/16
。
kubeadm init --kubernetes-version=v1.14.1 --pod-network-cidr=10.244.0.0/16
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at: https://kubernetes.io/docs/concepts/cluster-administration/addons/
上面我选的flannel
所以我开启命令为
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/a70459be0084506e4ec919aa1c114638878db11b/Documentation/kube-flannel.yml
master
节点以配置完毕,接下来需要配置node
节点
- 关闭node节点防火墙
- (可选)为了好辨识各个节点可以使用
hostnamectl set-hostname 节点名
修改节点的hostname
否则centos7
系统会显示为bogon
- 将
master
节点需要的k8s.gcr.io/XXX
镜像同样pull
到node
节点上去 - 运行
kubeadm join --token <token> <master-ip>:<master-port> --discovery-token-ca-cert-hash sha256:<hash>
token 可以在master
节点运行kubeadm token list
获取
--discovery-token-ca-cert-hash 可以通过如下命令获取:
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | \
openssl dgst -sha256 -hex | sed 's/^.* //'
systemctl enable docker.service
使用命令ubectl describe pod/coredns-xxxxxx -n kube-system
发现Warning Unhealthy Readiness probe failed: HTTP probe failed with statuscode: 503
将防火墙关闭后
coreDNS 开始能正常工作但 master 节点重启之后就 crashloopbackoff
将防火墙关闭后问题解决,命令:
sudo systemctl disable firewalld
sudo systemctl stop firewalld
反思,这是因为没有验证防火墙对服务端口的影响,文档开头明明白白写着需要注意验证这些。