“重启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
欢迎补充指正!