Kubernetes常用命令
2021-09-30 08:57:12 7 举报
AI智能生成
Kubernetes常用命令
作者其他创作
大纲/内容
kubectl --help
ipvsadm -Ln
查看ipvs的映射规则
查看命令
kubectl top node/po
查看资源使用情况
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 all -o wide
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
组合筛选用逗号连接: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 descrive 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 logs XXX
查看pod的日志
创建、更新、删除命令
kubectl apply -f XXX.yaml
创建、更新命令
kubectl apply -f ./
创建、更新当前目录下的所有yaml
kubectl delete deploy XXXX
删除命令
kubectl delete -f ./
删除目录下的所有yaml部署的pod
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
0 条评论
下一页