K8S最常用的命令

最近整理了K8S最常用的命令,(一直更新中。。)

查看集群信息

kubectl cluster-info

service相关操作

kubectl get service

kubectl get service -n kube-system

node相关操作

kubectl get nodes #查看K8S 的node信息

kubectl get node kub-k8s-node1 #查看某一个node的信息

kubectl delete node kub-k8s-node1 #删除node

kubectl describe node kub-k8s-node1 #查看node的详细信息

ns相关操作

kubectl get ns #查看k8s的ns信息

kubectl apply -f ns-dev.yml #建立ns

kubectl describe ns dev #查看ns的信息

kubectl delete -f ns-dev.yml #删除ns

pod相关操作

kubectl get pods -n dev #查看dev下的pod信息

kubectl get pods -n dev -o wide #查看dev下的pod扩展信息

kubectl get pods --all-namespaces #查看所有ns下的pod

kubectl label node k8s-worker01 node-role.kubernetes.io/worker=worker

kubectl delete pod [pod] -n [namespaces] #删除node

kubectl describe pod nginx-pod -n dev #查看node详细信息

kubectl get pods -l app=first-deploy01 -n dev --watch #查看pod后台更新的过程

rs相关操作

kubectl get rs -n dev #查看所有ReplicaSet的数量

kubectl get rs -l app=first-deploy01 -n dev #查看标签是first-deploy01的rs

kubectl get rs nginx-deploy-7d764f8d58 -o yaml -n dev #以yaml的格式,导出某个rs的信息

kubectl describe rs nginx-deploy-85ff79dd56 -n dev #查看控制器ReplicaSet 对象

rollout 发布回退相关操作

kubectl scale deployment nginx-deploy --replicas=4 #pod水平伸缩,命令行更改replicas的数量

kubectl rollout status deployment/nginx-deploy -n dev #查看deployment升级时候的状态(滚动更新)

kubectl rollout resume deployment/nginx-deploy -n dev #恢复滚动更新

kubectl rollout history deployment nginx-deploy -n dev #查看历史的更新版本

kubectl rollout undo deployment nginx-deploy --to-revision=2 -n dev #恢复到历史的某一个版本

deployment相关操作

kubectl get deployment -n dev #查看dev下的部署信息

kubectl get deployment -l app=first-deploy-nginx -n dev #查看dev下的某个label部署

yaml配置文件相关的操作

kubectl create -f nginx-deployment.yaml #首次就是用create

kubectl apply -f nginx-deployment.yaml #后续文件有改动,用apply,自动识别更改的地方

如何进入容器内部

kubectl exec -it nginx-tomcat-pod -n dev -c nginx /bin/bash #从K8S进入容器内部 (nginx-tomcat-pod 是 pod 的名字,-n dev 命名空间下,-c nginx 进入到 nginx 这个容器里面,要跟 yaml 里写的 name 一样)

docker ps |grep nginx #从宿主机进入容器内部

docker exec -it 3338ba068f4d /bin/bash

### Kubernetes 集群常用命令操作指南 #### 获取集群资源状态 为了获取集群中的节点信息,`kubectl get nodes` 是一个基本而重要的命令。此命令返回当前集群中所有节点的状态和其他细节[^1]。 ```bash kubectl get nodes ``` 对于查看特定命名空间内的Pods,可以使用 `kubectl get pods -n namespace-name` 来列出该命名空间下的所有Pod及其运行状况。 #### 查看详细信息 当需要更详细的描述关于某个资源的信息时,比如想要了解某一个pod的具体情况,则可采用如下方式: ```bash kubectl describe pod <pod_name> [-n <namespace>] ``` 这条指令不仅会给出Pod的基础属性,还会提供事件日志等有助于排查问题的数据。 #### 日志与调试 如果遇到应用程序内部错误或者容器启动失败的情况,可以通过读取容器的日志来进行初步诊断: ```bash kubectl logs <pod_name> ``` 对于多容器的Pod来说,还可以指定具体要查看哪个容器的日志: ```bash kubectl logs <pod_name> -c <container_name> ``` 此外,在某些情况下可能还需要执行进入正在运行的容器环境中进一步调查问题所在: ```bash kubectl exec -it <pod_name> -- /bin/sh ``` 这允许管理员直接在目标容器里运行shell命令以便更好地理解其环境设置和行为表现。 #### 资源管理 除了上述提到的操作外,还有许多其他实用的功能可以帮助管理和维护Kubernetes集群的有效运作。例如调整副本数量、滚动更新应用版本或是回滚到之前的稳定状态等等。这些都是通过一系列精心设计好的API调用来完成的,并且大部分都可以经由`kubectl scale`, `kubectl rollout status/deployments/<deployment_name>` 和 `kubectl rollout undo deployment/<deployment_name>` 这样的简便形式来触发相应的行为。 #### 应用部署和服务发现 后但同样重要的一点是服务定义和服务之间的通信机制。创建无头Service(Headless Service)配合StatefulSet控制器可用于构建像Elasticsearch或Etcd这样的有状态应用实例集;而对于大多数Web类负载而言,默认的服务类型ClusterIP就足以满足需求了[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值