Kubernetes控制命令kubectl汇总
kubectl 作为Kubernetes集群管理的命令行工具,经常用到的几个子命令包括:
- kubectl get – list resources
- kubectl describe – show detailed information about a resource
- kubectl logs – print the logs from a container in a pod
- kubectl exec – execute a command on a container in a pod
按类型分
集群状态
kubectl cluster-info
get 获取信息
kubectl get nodes
kubectl get deployments
kubectl get pods
# 更详细的信息
kubectl get pods -o wide
kubectl get componentstatuses
logs 获取容器日志
POD_NAME=$(kubectl get pods -l run=nginx -o jsonpath="{.items[0].metadata.name}")
kubectl logs $POD_NAME
exec 在容器执行命令
kubectl exec -ti -- $POD_NAME <command>
配置
# 基于配置文件创建pod
kubectl create -f <config.yaml>
# 创建其他资源
kubectl create secret generic kubernetes-bootcamp --from-literal="mykey=mydata"
按使用场景
部署容器镜像
## 部署
kubectl run <deployment name> —image=<full url> —port=8080
# 例如
kubectl run kubernetes-bootcamp --image=gcr.io/google-samples/kubernetes-bootcamp:v1 --port=8080
kubectl run busybox --image=busybox
# 检查
kubectl get deployments
# 使用标签过滤
kubectl get pods -l run=busybox
## 升级
kubectl set image ...
暴露服务
# 使API Server监听本地的8001端口
kubectl proxy
# 使用NodePort服务方式暴露部署
kubectl expose deployment nginx --port 80 --type NodePort
# 标签标记
kubectl label
# 检查
kubectl get services
自动扩容
kubectl scale <deployment> —replicas=5
升级及回滚
kubectl rollout status …
kubectl rollout undo <deployment>