k8s 常用命令合集

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s 常用命令合集相关的知识,希望对你有一定的参考价值。

kubernete master 只运行集群组件,nodes 运行pods。Taints 表示污点的意思,如果node描述信息有该选项表示不可调度. 
kubectl describe node centos-04
取消污点
kubectl taint node
#查看集群节点信息
kubectl version kubectl cluster-info
通过yaml文件创建pods
kubectl create -f xx.yaml #此种方法无法更新
kubectl apply -f xx.yaml #此种方法可以更新
kubectl delete -f xx.yaml #删除服务
kubectl get pod/svc/deployment -o wide #可查看服务分配到哪个节点上
#deployment
kubect get deployment
kubectl describe deployment nginx-deploy #描述deployment的详细信息
kubectl get deployment -w #监控deployment的部署情况
镜像更新,镜像更新为某个版本,更新 deployment 控制器下
kubectl set image deployment nginx nginx=docker.io/nginx:v2
kubectl rollout status deployment nginx-deploy #查看更新状况
kubectl rollout undo deployment nginx-deploy #如果失败可以回滚操作

#pods
kubectl get pods
kubectl get pods --show-lables #显示关联标签,service 与 pods 的关联是通过labels 标签来关联的. 可以打多标签
kubectl labels pods nginx-deploy-7c9fdb585c-27bc6 release=canary #打标签
kubectl get pods -l release notin (标签名1,2....) #针对标签联合查询,in , not in !取反
kubectl get pods -l app --show-labels #显示标签中包含 app的pod ,-l 选项为标签过滤器

#Service 只服务于群集内部
kubectl get service -o wide #查看service详细信息
kubectl get svc
kubectl edit svc nginx #编辑service服务
service_ip 只能在集群内部访问。如果pod删除,pod后续还会自动生成,并且ip会发生变化。
service_ip:port----->pod_ip:port , service 的cluster_ip 默认只服务于集群内部,不对外

service 动态扩容、缩容,首先要查看deployment的名字,然后再扩容
kubectl get svc -o wide
kubectl scale --replicas=5 deployment nginx-deploy
kubectl scale --replicas=3 deployment nginx-deploy


kubectl get component statuses #查看集群健康状态
kubectl get endpoints #查看endpoints运行时间
kubectl cluster-info #查看集群
kubectl create -f redis-master-controller.yaml
kubectl delete -f redis-master-controller.yaml
kubectl delete pod nginx-772ai
kubectl delete pod –all #删除所有pod
kubectl delete service nginx-app #删除创建的service
kubectl delete deployment ad-ext-media -n test #删除deployment
kubectl logs -f pods/heapster-xxxxx -n kube-system #查看日志
kubectl scale rc redis-slave --replicas=3 #修改RC的副本数量,来实现Pod的动态缩放

进阶命令
kubectl get services kubernetes-dashboard -n kube-system #查看所有service
kubectl get deployment kubernetes-dashboard -n kube-system #查看所有发布
kubectl get pods --all-namespaces #查看所有pod
kubectl get pods -o wide --all-namespaces #查看所有pod的IP及节点
kubectl get pods -n kube-system | grep dashboard
kubectl describe service/kubernetes-dashboard --namespace="kube-system"
kubectl describe pods/kubernetes-dashboard-349859023-g6q8c --namespace="kube-system" #指定类型查看
kubectl describe pod nginx-772ai #查看pod详细信息
kubectl scale rc nginx --replicas=5 # 动态伸缩
kubectl scale deployment redis-slave --replicas=5 #动态伸缩
kubectl scale --replicas=2 -f redis-slave-deployment.yaml #动态伸缩
kubectl exec -it redis-master-1033017107-q47hh /bin/bash #进入容器
kubectl label nodes node1 zone=north #增加节点label值
spec.nodeSelector: zone: north #指定pod在哪个节点
kubectl get nodes -l zone #获取zone的节点
kubectl label pod redis-master-1033017107-q47hh role=master #增加lable值 [key]=[value]
kubectl label pod redis-master-1033017107-q47hh role- #删除lable值
kubectl label pod redis-master-1033017107-q47hh role=backend --overwrite #修改lable值
kubectl rolling-update redis-master -f redis-master-controller.yaml #配置文件滚动升级
kubectl rolling-update redis-master --image=redis-master:2.0 #命令升级
kubectl rolling-update redis-master --image=redis-master:1.0 --rollback #pod版本回滚

以上是关于k8s 常用命令合集的主要内容,如果未能解决你的问题,请参考以下文章

k8s不常用设置-禁止master调度

k8s 污点和容忍

k8s 污点和容忍

k8s 污点和容忍

k8s 污点和容忍

再战 k8s(11):污点容忍,亲和性