一. 新增节点
无论是node节点还是master节点,kubelet、kubeadm、kubectl、CRI需要部署好,
### 新增node, 重新生成token, 复制加入即可, 前提是需要装上面的 kubectl kubeadm kubelet containerd 等
kubeadm token create --print-join-command
### 新增 master节点,先生成 token 及 ca
kubeadm token create --print-join-command
# 再生成key
kubeadm init phase upload-certs --upload-certs
# 然后组合起来
--control-plane --certificate-key ${KEY}
# 查看污点
kubectl describe node master-1 |grep -i tain
Taints: node-role.kubernetes.io/master:NoSchedule
# 根据实际情况去除污点, 多去除几次, 有可能没去除到
kubectl taint node master-1 node.kubernetes.io/not-ready:NoSchedule-
二. 容器状态
Pod状态 | Pod含义 | 解决方案 |
---|---|---|
Pending | Pod未被调度到节点上 | Pod状态为Pending |
Init:N/M | Pod包含M个Init容器,其中N个已经启动完成 | Pod状态为Init:N/M(Init:Error和Init:CrashLoopBackOff) |
Init:Error | Init容器已启动失败 | Pod状态为Init:N/M(Init:Error和Init:CrashLoopBackOff) |
Init:CrashLoopBackOff | Init容器启动失败,反复重启 | Pod状态为Init:N/M(Init:Error和Init:CrashLoopBackOff) |
Completed | Pod的启动命令已执行完毕 | Pod状态为Completed |
CrashLoopBackOff | Pod启动失败,反复重启 | Pod状态为CrashLoopBackOff |
ImagePullBackOff | Pod镜像拉取失败 | Pod状态为ImagePullBackOff |
Running | Pod运行正常。Pod Running但是未正常工作 | 无需处理Pod状态为Running但没正常工作 |
Terminating | Pod正在关闭中 | Pod状态为Terminating |
Evicted | Pod被驱逐 | Pod状态为Evicted |
三. 拷贝容器文件
# 获得容器的ID
[root@k8s-lon ~/apisix/apisix-on-kubernetes]# crictl ps -a |awk '/xingguang-etcd-1/ {print $1}'
be320d0d21878
# 获得容器完整ID
[root@k8s-lon ~/apisix/apisix-on-kubernetes]# ctr -n k8s.io task ls |grep be320d0d21878
be320d0d218786b1310c548595a99509eb5e0717502f36cb4c454621fcfe2db6 27283 RUNNING
[root@k8s-lon ~/apisix/apisix-on-kubernetes]#
# 任意创建目录
mkdir /root/apisix/apisix-on-kubernetes/etcd-1
# 获得挂载命令,
[root@k8s-lon ~/apisix/apisix-on-kubernetes]# ctr -n k8s.io snapshot mounts /root/apisix/apisix-on-kubernetes/etcd-1 be320d0d218786b1310c548595a99509eb5e0717502f36cb4c454621fcfe2db6
mount -t overlay overlay /root/apisix/apisix-on-kubernetes/etcd-1 -o index=off,workdir=/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/1496/work,upperdir=/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/1496/fs,lowerdir=/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/1086/fs
# 直接挂载上,进入挂载点,就可以任意操作容器的文件, 一定不要删除文件,否则容器中文件也会丢失
mount -t overlay overlay /root/apisix/apisix-on-kubernetes/etcd-1 -o index=off,workdir=/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/1496/work,upperdir=/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/1496/fs,lowerdir=/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/1086/fs
# 使用完毕后,必须 umount, 保证容器中的数据不丢失