# Kubernetes命令

# 更新deployment中的镜像:

本地更新docker镜像,build时指定tag

deployment.yaml中更新image字段的值:

kubectl apply -f deployment.yaml 更新

如果pull的是private镜像,则可能出错,查看原因:

kubectl get all -n my-components

进入对应的pod中查看原因可以未登录docker hub:

kubectl describe pod my-components-867977bc94-xfm6v -n my-components

创建secret:

注意要指定namespace,否则即使下面yaml制定了imagePullSecrets也无效。kubectl edit secret变更namespace不会生效。

kubectl create secret docker-registry regsecret --namespace=my-components --docker-server=https://index.docker.io/v1/ --docker-username=limsanity3 --docker-password=xxxxx --docker-email=798607646@qq.com

查看secret:

kubectl get secret regsecret --output=yaml

查看.dockerconfigjson内容:

kubectl get secret regsecret --output="jsonpath={.data.\.dockerconfigjson}" | base64 --decode

查看auth内容:

echo "c3R...zE2" | base64 --decode

输出是username:password。注意auth字段的值和~/.docker/config.json中的值一致。

回滚更新:

kubectl rollout undo deploy my-components -n my-components

重新更新:

kubectl apply -f deployment.yaml

查看rollout状态

kubectl rollout status deploy my-components -n my-components

查看rollout历史

kubectl rollout history deploy my-components -n my-components

# 参考