kubectl --help # 帮助 ipvsadm -Ln # 查看ipvs的映射规则 kubectl top node/pod -n dev 查看资源使用情况 kubectl api-resources # 查看资源,相关的简写 kubectl api-versions #查看api的版本号 kubectl config view # 查看集群配置的信息,包含集群的名称 kubectl get ns # 查看命名空间 kubectl get all -n kube-system # 查看K8S指定命名空间下所有的组件运行情况 kubectl get rs # 查看ReplicaSet kubectl get node #查看节点 kubectl get deploy # 查看deployment kubectl get deploy,po -n XXX # 同时查看XXX命名空间下的deploy和pods信息 kubectl get deployment XXX -o yaml # 查看deploy的状态输出 kubectl get deployment XXX -o wide # 查看deploy的所在节点 kubectl describe deployment/nginx-deployment #查看deploy的详细信息 kubectl get pods -o wide/yaml/json # 查看pod的所在节点 kubectl get pods --show-labels 查看pod的label kubectl label pod XXX -n YYY version=1.0 指定YYY命名空间下的XXXpod添加了version=1.0的标签 更新 需加上 --overwrite kubectl label pod XXX -n YYY version- 删除标签 kubectl get po -l app=nginx 跟据label筛选pod,app=nginx/app!=nginx/app in(nginx1,nginx2)/app not in(nginx1) 组合筛选用逗号连接:app=nginx,version=1.0 kubectl get pods -w -l app=nginx 根据label监控pod的运行情况 kubectl describe pod XXX 查看pod的详细信息 kubectl describe pod alertmanager-main-0 -n kubesphere-monitoring-system 查看命名空间下的XXX pod的详情 kubectl get pods -n XXX 查看指定命名空间下的pod kubectl get po --all-namespaces 查看所有命名空间下的po kubectl get pods --output=yaml 查看Pod的metadata字段 kubectl get pods --field-selector=status.phase!=Running,spec.restartPolicy=Always 根据选择器查看pod kubectl get pod XXX --template '{{range $i, $c := .spec.containers}}{{$c.image}}{{end}}' 查看Pod的容器 kubectl logs podname 根据pod名称查看输出 kubectl get pvc 查看PersistentVolumeClaim kubectl get pv 查看PersistentVolume kubectl describe pv XXX 查看PersistentVolume的详细信息,可以找到卷的具体位置在哪个节点、哪个目录下 kubectl get events -A --field-selector=reason=OwnerRefInvalidNamespace 查看无归属的事件 kubectl get svc 查看Service kubectl expose deploy nginx --name=svc-nginx2 --type=NodePort --port=80 --target-port=80 -n dev 命令的方式添加NodePort的service kubectl get svc -o yaml 查看Service的yaml配置 kubectl get sts 查看StatefulSet列表 kubectl describe sts/XXX 查看某个StatefulSet的详情 kubectl explain pod 解释或说明pod资源的可配置项 kubectl explain pod.metadata 查看pod资源下metadata的可配置项 kubectl get ing 查看ingress kubectl get cm 查看configMap 创建、更新、删除命令 kubectl apply -f XXX.yaml 创建、更新命令 kubectl apply -f ./ 创建、更新当前目录下的所有yaml kubectl delete deploy XXXX 删除命令 kubectl delete sts XXX --cascade=false 加上--cascade=false,只删除 StatefulSet 而不要删除它的任何 Pod。如果之后再删除pod,不会在自动创建,因为没有sts了 kubectl delete svc XXX 删除service kubectl delete pvc XXX 删除PersistentVolumeClaim kubectl delete pv XXX 删除PersistentVolume kubectl set image deploy/nginx-deployment nginx=nginx:sometag 更新镜像版本 kubectl create deployment web --image=nginx -o yaml --dry-run > test1.yaml 创建一个deployment的模板yaml文件 编辑命令 kubectl edit cc -n kubesphere-system ks-installer 编辑ClusterConfiguration kubectl edit cm -n kubesphere-system ks-console-config 编辑configMap kubectl edit rs XXX -n YYY 编辑YYY命名空间下的XXX的rs配置 回滚命令 kubectl rollout status deployment/nginx-deployment 查看发布状态 kubectl rollout pause deployment nginx 暂停发布 ,更新操作会被暂停,比如更新版本在暂停状态不会触发 kubectl rollout resume deployment nginx 恢复发布,此时更新版本之类的操作才会触发 kubectl rollout history deployment/nginx-deployment 查看修改历史 kubectl rollout history deployment.v1.apps/nginx-deployment --revision=2 查看指定的版本号的修改历史 kubectl rollout undo deployment.v1.apps/nginx-deployment --to-revision=2 回滚到指定的版本 扩缩容命令 kubectl scale deployment.v1.apps/nginx-deployment --replicas=10 扩缩指定数量 kubectl autoscale deployment.v1.apps/nginx-deployment --min=10 --max=15 --cpu-percent=80 自动扩缩器 kubectl get hpa 查看自动缩放策略 kubectl delete hpa NAME-OF-HPA 删除自动缩放策略 分区更新命令 灰度发布 kubectl patch statefulset web -p '{"spec":{"updateStrategy":{"type":"RollingUpdate","rollingUpdate":{"partition":3}}}}' 添加分区 kubectl patch statefulset web --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/image", "value":"nginx:1.16.1"}]' 更新容器镜像,跟添加分区相结合,只会更新大于3的pod中的镜像,0,、1、2中仍然会使用旧的镜像 外部操作Pod内部的命令 kubectl exec -it XXX -c YYY -- bash 进入XXX的pod里的YYY容器内部 kubectl exec "XXX" -- sh -c 'cat /usr/share/nginx/html/index.html' kubectl exec -i -t "XXX" -- curl http://localhost/ 污点操作 kubectl taint nodes node1 key=value:effect node1上设置污点 kubectl taint nodes node1 tag=heima:PreferNoSchedule kubectl taint nodes node1 key:effect- 去除node1上指定的污点 kubectl taint nodes node1 tag:PreferNoSchedule- kubectl taint nodes node1 key- 去除node1上的全部污点 kubectl taint nodes node1 tag- Helm 整体部署 helm create XXX 创建一个名为XXX的chart,会在执行命令的目录下生成一个XXX的文件夹,里面生成相应的chart模板文件 helm install XXX testChart/ 根据testChart的chart文件安装XXX的项目 helm upgrade XXX testChart/ 根据testChart的chart文件升级XXX的项目 使用全局变量 ,动态yaml