持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第11天,点击查看活动详情
-
重置kubeadm安装状态
kubeadm reset rm -fr $HOME/.kube/config -
在执行
kubeadm init后,节点处于NotReady,这是符合预期的。使用
kubectl describe node master即可查看master节点信息,他会告诉我们network plugin is not ready: cni config uninitialized因为没有安装网络,所有DNS服务一起起不来,安装网络服务即可(这里是flannel)。
[root@master kubeadm_init]# kubectl get pods --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-6d8c4cb4d-2fbpp 0/1 Pending 0 2m40s kube-system coredns-6d8c4cb4d-g8jzg 0/1 Pending 0 2m40s kube-system etcd-master 1/1 Running 1 (6m23s ago) 3m2s kube-system kube-apiserver-master 1/1 Running 1 (6m32s ago) 2m58s kube-system kube-controller-manager-master 1/1 Running 1 (3m26s ago) 2m55s kube-system kube-proxy-tdz44 1/1 Running 0 2m40s kube-system kube-scheduler-master 1/1 Running 1 (3m53s ago) 2m59s # 安装flannel后 [root@master kubeadm_init]# kubectl get pods --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE kube-system coredns-6d8c4cb4d-2fbpp 1/1 Running 0 8m48s kube-system coredns-6d8c4cb4d-g8jzg 1/1 Running 0 8m48s kube-system etcd-master 1/1 Running 1 (12m ago) 9m10s kube-system kube-apiserver-master 1/1 Running 1 (12m ago) 9m6s kube-system kube-controller-manager-master 1/1 Running 1 (9m34s ago) 9m3s kube-system kube-flannel-ds-7gm8n 1/1 Running 0 57s kube-system kube-proxy-tdz44 1/1 Running 0 8m48s kube-system kube-scheduler-master 1/1 Running 1 (10m ago) 9m7s1)获取flannel:wget raw.githubusercontent.com/coreos/flan…
2)获取镜像:
grep image kube-flannel.yml[root@maste k8s]# grep image kube-flannel.yml #image: flannelcni/flannel-cni-plugin:v1.0.1 for ppc64le and mips64le (dockerhub limitations may apply) image: rancher/mirrored-flannelcni-flannel-cni-plugin:v1.0.1 #image: flannelcni/flannel:v0.17.0 for ppc64le and mips64le (dockerhub limitations may apply) image: rancher/mirrored-flannelcni-flannel:v0.17.0 #image: flannelcni/flannel:v0.17.0 for ppc64le and mips64le (dockerhub limitations may apply)3)Master:
kubecetl create -f kube-flannel.yml4)Node:
crictl pull flannelcni/flannel-cni-plugin:v1.0.1 crictl pull flannelcni/flannel:v0.17.0
-
Master节点执行
systemctl enable --now kubelet后,kubelet可能会起不来,等kubeadm init执行成功后,就会自动起来了。 -
让node节点使用kubectl命令行工具
mkdir -p $HOME/.kube scp master:/$HOME/.kube/config $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config mkdir -p $HOME/.kube scp master:/etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config -
如果想要可视化,这里有两种方法
-
阿里云ecs里没有配置公网ip,etcd无法启动,所以kubeadm在初始化会出现”timeout“的错误
解决办法就是给你的服务器版定一个公网ip。
-
想要优雅的使用k命令,而不每次都输入
kubectl。可以在每次ssh连接后执行function k() { cmdline=`HISTTIMEFORMAT="" history | awk '$2 == "kubectl" && (/-n/ || /--namespace/) {for(i=2;i<=NF;i++)printf("%s ",$i);print ""}' | tail -n 1` regs=('-n [\w-\d]+' '-n=[\w-\d]+' '--namespace [\w-\d]+' '--namespace=[\w-\d]+') for i in "${!regs[@]}"; do reg=${regs[i]} nsarg=`echo $cmdline | grep -o -P "$reg"` if [[ "$nsarg" == "" ]]; then continue fi cmd="kubectl $nsarg $@" echo "$cmd" $cmd return done cmd="kubectl $@" echo "$cmd" $cmd }如果不想要每次都手动执行可以设置为ssh登陆后自动执行: 编辑
~/.bashrcif [[ -n $SSH_CONNECTION ]] ; then function k() { cmdline=`HISTTIMEFORMAT="" history | awk '$2 == "kubectl" && (/-n/ || /--namespace/) {for(i=2;i<=NF;i++)printf("%s ",$i);print ""}' | tail -n 1` regs=('-n [\w-\d]+' '-n=[\w-\d]+' '--namespace [\w-\d]+' '--namespace=[\w-\d]+') for i in "${!regs[@]}"; do reg=${regs[i]} nsarg=`echo $cmdline | grep -o -P "$reg"` if [[ "$nsarg" == "" ]]; then continue fi cmd="kubectl $nsarg $@" echo "$cmd" $cmd return done cmd="kubectl $@" echo "$cmd" $cmd } fi