一、实用技巧
1. 命令自动补全
#安装
yum install -y bash-completion
source /usr/share/bash-completion/bash_comletion
source <(kubectl completion bash) #生效
echo "source <(kubectl completion bash)" >> ~/.bashrc #永久化
2. 查看 k8s 资源缩写
kubectl api-resources
3. 获取某字段下的属性
kubectl explain pod.spec.affinity #以 affinity 为例
4. 快速生成 yaml 模板
kubectl run <deploy_name> --image=nginx -o yaml --dry-run > xxx.yaml #通过 run 生成deploy模板( --dry-run 不会真的创建 deploy)
kubectl get <type> <resourcename> -o=yaml > xxx.yaml #通过现有资源生成 yaml 模板
二、日常使用
1. 查看
kubectl cluster-info #查看集群
kubectl cluster-info dump #查看集群具体信息
kubectl get cs #查看master组件状态
kubectl get <type> <resource_name> -o wide #查看具体资源对象
kubectl get <type> <resource_name> -o yaml #查看对象的 yaml 信息
kubectl describe <type> <resource_name> #查看对象的详细信息
kubectl logs -f <pod-name> -c <container-name> #查看日志
2. 操作
普通操作
kubectl apply -f xxx.yaml #根据文件创建对象
kubectl edit <type> <resource_name> #编辑对象
kubectl delete -f xxx.yaml #根据文件删除对象
kubectl delete <type> <resource_name> #删除对象
deployment滚动升级
kubectl run nginx-deploy --image=nginx --replicas=2 #创建 deploy
kubectl set image deploy nginx-deploy nginx-deploy=nginx:1.9.1 #升级 image
kubectl set resources deploy nginx-deploy -c=nginx --limits=cpu=200m,memory=512Mi #升级资源
kubectl rollout pause deploy nginx-deploy #暂停 deploy
kubectl rollout resume deploy nginx-deploy #恢复 deploy
kubectl rollout status deploy nginx-deploy #查询升级状态
kubectl rollout history deploy nginx-deploy #查询升级历史
kubectl rollout history deploy nginx-deploy --revision=2 #查看指定版本历史
kubectl rollout undo deploy nginx-deploy --to-revision=2 #回滚
kubectl scale deploy nginx-deploy --replicas=10 #弹性伸缩
kubectl autoscale deploy nginx-deploy --min=10 --max=15 --cpu-percent=80 #弹性伸缩
创建service
kubectl create service <type> <name> --tcp=80:8080 #type:clusterip、nodeport
kubectl create service clusterip <name> --clusterip="None" #headless service
kubectl expose deploy <deploy_name> --type=ClusterIP --name=<name> --port=80 --target-port=8080 #expose deployment