k8s技巧整理(不定期更新)

“重启pod”

假定pod的replicas值为2.

利用scale

# 先缩为0, 再扩为原来的replicas
$ kubectl scale deployment $deployName --replicas=0 [-n $nameSpaceName]
$ kubectl scale deployment $deployName --replicas=2 [-n $nameSpaceName]

删除pod, 让k8s自己重新建立pod

$ kubectl delete pod $podName

编辑相应的配置文件(比如修改image的tag, 再改回来)

由于k8s会检测配置的变动, 所以修改配置再改回去也可以

$ vim deploy.yaml
# 修改image的tag, 保存退出
$ vim deploy.yaml
# 修改image的tag为原来的值, 保存退出

利用kubectl replace

for i in `kubectl get pods | grep $podName | awk '{print $1}'`; do kubectl get pod $i -n $nameSpaceName -o yaml | kubectl replace --force -f -; done

进入容器

$ kubectl exec -it $podName -c $containerName -- /bin/sh

注意:

  • 如果pod中只有一个container, 则不用写"-c $containerName";
  • /bin/sh是看镜像决定的, 有的也可以用/bin/bash

node相关

node名称 node ip逐行输出

参考: https://kubernetes.io/docs/reference/kubectl/jsonpath/

kubectl get nodes -o=jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.status.addresses[?(@.type=="InternalIP")].address}{"\n"}{end}'

子节点有多个IP时, 选择一个

在文件/etc/sysconfig/kubelet中写上:
KUBELET_EXTRA_ARGS=–node-ip=${ip}

重启子节点的kubelet

欢迎补充指正!

发布了231 篇原创文章 · 获赞 77 · 访问量 52万+

猜你喜欢

转载自blog.csdn.net/butterfly5211314/article/details/89028937