简介
常见操作
安装k8s
卸载k8s
# 在卸载K8s组件前,先执行kubeadm reset命令,清空K8s集群设置卸载管理组件
kubeadm reset
# 卸载管理组件
yum erase -y kubelet kubectl kubeadm kubernetes-cni
# docker 全部清理
docker rm $(docker ps -a -q)
docker rmi $(docker images -q)
# docker 重启
systemctl daemon-reload
systemctl restart docker
systemctl stop docker service
节点操作
删除节点
# 首先驱逐要删除节点(假设节点名为k8s-node1)上的pods(master节点执行)
kubectl drain k8s-node1 --delete-local-data --force --ignore-daemonsets
# 然后执行删除(master节点执行)
kubectl delete node k8s-node1
# 最后在删除的节点机器上执行
kubeadm reset
添加节点
添加新节点需要在原master节点获取token和hash值
# 获取token(在master节点执行)
kubeadm token create # 有效期24小时
# 生成永久token命令: kubeadm token create --ttl 0
# 查看token
kubeadm token list
# 获取hash值(在master节点执行)
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
# 加入集群(在新节点机器上执行)
kubeadm join $ip:$port --token $token_value --discovery-token-ca-cert-hash sha256:$hash_value
# 其中
# $ip 为master节点ip地址
# $port 为k8s端口号,通常为6443
# $token_value 为上面生成的token值
# $hash_value 为上面生成的hash值
重启NotReady节点
# 一、 master节点直接在对应节点重启kubelet服务
systemctl restart kubelet
# 二、slave节点
# 1. 设置节点为不可调度状态(在master节点执行)
kubectl cordon nodename
# 2. 驱逐节点上pods(在master节点执行)
kubectl drain nodename --delete-local-data --force --ignore-daemonsets
# 3. 重启服务(在对应节点机器上执行)
systemctl restart kubelet
# 4. 恢复节点为可调度状态(在master节点执行)
kubectl uncordon nodename
pod 操作
--------------- 查看节点信息 ---------------
kubectl describe nodes <nodeName>
# 创建Pod
--------------- 创建Pod ---------------
kubectl apply -f pod.yaml
# 创建nginx
kubectl run nginx --image=nginx
--------------- 查看Pod ---------------
# 查看在活动Pod
kubectl get pods
kubectl get pod,svc
# 查看在所有Pod
kubectl get pods -A
# 查看有Pod描述/日志
kubectl describe pod <Pod名称>
# 查看日志:
kubectl logs <Pod名称> [-c CONTAINER]
kubectl logs <Pod名称> [-c CONTAINER] -f
--------------- 查看Pod ---------------
# 进入容器终端:
kubectl exec <Pod名称> [-c CONTAINER] --bash
--------------- 删除Pod ---------------
kubectl delete <Pod名称>
kubectl delete pods <pod> --grace-period=0 --force
kubectl delete pod <your-pod-name> -n <name-space> --force --grace-period=0