k8s常用命令

1.查看集群信息

kubectl cluster-info
Kubernetes master is running at http://localhost:8080
To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.

2.查看更详细的可以用

kubectl cluster-info dump
查看信息报错:Error from server (Forbidden): Forbidden (user=system:anonymous, verb=get, resource=nodes, subresource=proxy)
暂时解决办法绑定一个cluster-admin的权限:
kubectl create clusterrolebinding system:anonymous   --clusterrole=cluster-admin   --user=system:anonymous

3.查看组件状态

kubectl -s http://localhost:8080 get componentstatuses简写:kubectl  get cs
[root@k8s-master ~]# kubectl -s http://localhost:8080 get componentstatuses
NAME                 STATUS    MESSAGE              ERROR
controller-manager   Healthy   ok                   
scheduler            Healthy   ok                   
etcd-2               Healthy   {"health": "true"}   
etcd-0               Healthy   {"health": "true"}   
etcd-1               Healthy   {"health": "true"}

4.创建deployment资源

kubectl apply -f nginx.yml

5.根据resource名或label删除resource

kubectl delete -f rc-nginx.yaml
kubectl delete pod rc-nginx-btv4j
kubectl delete pod -lapp=nginx-2
kubectl delete pod --all   //批量删除
通过命令run创建的pod删除,查看资源:kubectl get deployment
kubectl delete deployment 名称

6.进入pod资源/外部执行命令

kubectl exec -it nginx02313231xfe /bin/bash #进入容器
kubectl exec  nginx-64f497f8fd-6j5b4 -- hostname -I  #从外部执行到容器里面的命令

6.查看资源基本信息get方法

deployment资源(运行的服务资源)
kubectl get deployment      #查看资源信息
kubectl get pod             #查看pod信息
kubectl get namespaces      #查看命名空间
kubectl get replicaset      #查看副本信息
NAME    DESIRED   CURRENT  UP-TO-DATE  AVAILABLE  AGE
nginx     3          3          3          3       1d

7.查看pod,deploment,replicaset详细信息后面加 -o wide 方法

kubectl get deployment -o wide     #查看详细资源信息
kubectl get pod  -o wide           #查看pod详细信息
kubectl get replicaset -o wide     #查看副本详细信息
NAME  DESIRED CURRENT UP-TO-DATE AVAILABLE  AGE   CONTAINERS   IMAGES    SELECTOR
nginx   3       3        3          3        1d       nginx     nginx    run=nginx
desired:   期望的副本数量
current:   当前副本数量
up-to-date: 最新副本数量
available:  运行中的副本数
age:        已经运行的时间
containers: 运行的容器
images:     容器的镜像
selector:   调度规则

8.查看某一个pod,deploment,replicaset非常详细信息利用describe

kubectl describe replicaset/pod
如果发现是查询某个resource的信息,使用get命令能够获取更加详尽的信息。但是如果想要查询某个resource的状态,如某个pod并不是在running状态,这时需要获取更详尽的状态信息时,就应该使用describe命令。
kubectl describe deployment 资源名称       #查看详细资源信息
kubectl describe pod  pod的名称            #查看pod详细信息
kubectl describe replicaset 副本名称       #查看副本详细信息
Name deployment 名
Namespace 命名空间
Selector 调度规则
Labels 标签
Annotations 注释
Controller By 指明是由deployment创建
Replicas 副本
Pods Status Pod状态
Pod Template Pod模板
Events: Deployment的执行日志
kubectl 命令详解 - DaemonSet
DaemonSet 和 Deployment 的区别:DaemonSet 每个node最多只允许一个副本,Deployment 每个node可运行多个副本
DaemonSet 应用场景(如:k8s本身的kube-proxy就是这类资源)
集群的每个节点运行存储 Daemon 。 例如:ceph
集群的每个节点运行日志收集 Daemon 。 例如: logstash
集群的每个节点运行监控 Daemon 。例如: collectd

9.查看svc(和service一样)和pods信息

kubectl get svc,pods

10.查看rc和namespace

kubectl get rc,namespace

11.对资源进行更新

kubectl replace -f rc-nginx.yaml
replace命令用于对已有资源进行更新、替换。如前面create中创建的nginx,当我们需要更新resource的一些属性的时候,如果修改副本数量,增加、修改label,更改image版本,修改端口等。都可以直接修改原yaml文件,然后执行replace命令。
注:名字不能被更更新。另外,如果是更新label,原有标签的pod将会与更新label后的rc断开联系,有新label的rc将会创建指定副本数的新的pod,但是默认并不会删除原来的pod。所以此时如果使用get po将会发现pod数翻倍,进一步check会发现原来的pod已经不会被新rc控制,此处只介绍命令不详谈此问题,好奇者可自行实验。

12.对资源进行不中断更新rolling-update

kubectl rolling-update rc-nginx-2 -f rc-nginx.yaml
rolling-update是一个非常重要的命令,对于已经部署并且正在运行的业务,rolling-update提供了不中断业务的更新方式。rolling-update每次起一个新的pod,等新pod完全起来后删除一个旧的pod,然后再起一个新的pod替换旧的pod,直到替换掉所有的pod。
rolling-update需要确保新的版本有不同的name,Version和label,否则会报错 。

13.对资源进行回滚rolling-update

kubectl rolling-update rc-nginx-2 —rollback
如果在升级过程中,发现有问题还可以中途停止update,并回滚到前面版本
rolling-update还有很多其他选项提供丰富的功能,如—update-period指定间隔周期,使用时可以使用-h查看help信息

14.查看pod日志

kubectl logs -f rc-nginx-2-kpiqt
logs命令用于显示pod运行中,容器内程序输出到标准输出的内容。跟docker的logs命令类似。如果要获得tail -f 的方式,也可以使用-f选项。
参考:更加详细命令https://www.cnblogs.com/menkeyi/p/7128809.html

15.yaml语法验证

​​当你不确定声明的配置文件是否书写正确时,使用以下命令要验证:
kubectl create -f nginx.yaml --validate
注:使用--validate只是会告诉你它发现的问题,仍然会按照配置文件的声明来创建资源,除非有严重的错误使创建过程无法继续,如必要的字段缺失或者字段值不合法,不在规定列表内的字段会被忽略。

16.无头服务扩容

扩容
kubectl scale statefulset web --replicas=10
缩容
kubectl patch statefulset web -p '{"spec":{"replicas":3}}'删除StatefulSet Headless Service
kubectl delete statefulset web
kubectl delete service tomcat
StatefulSet删除后PVC还会保留着,数据不再使用的话也需要删除
kubectl delete pvc log-pvc-web-8 log-pvc-web-9

 

转载于:https://my.oschina.net/wangyunlong/blog/3053265

很抱歉,我无法提供思维导图。但是,我可以为您提供一些常用的Kubernetes命令。以下是一些常用的Kubernetes命令: 1. kubectl get pods:获取当前集群中的所有Pods的信息。 2. kubectl get deployments:获取当前集群中的所有Deployments的信息。 3. kubectl get services:获取当前集群中的所有Services的信息。 4. kubectl create deployment \[deployment-name\] --image=\[image-name\]:创建一个新的Deployment。 5. kubectl scale deployment \[deployment-name\] --replicas=\[number\]:扩展或缩小一个Deployment的副本数量。 6. kubectl delete deployment \[deployment-name\]:删除一个Deployment。 7. kubectl describe pod \[pod-name\]:获取一个Pod的详细信息。 8. kubectl logs \[pod-name\]:获取一个Pod的日志。 9. kubectl exec -it \[pod-name\] -- \[command\]:在一个Pod中执行一个命令。 10. kubectl apply -f \[file-name\]:使用一个YAML文件创建或更新资源。 这些是一些常用的Kubernetes命令,可以帮助您管理和操作Kubernetes集群中的资源。希望对您有所帮助! #### 引用[.reference_title] - *1* *2* *3* [k8s学习-思维导图与学习笔记](https://blog.csdn.net/lady_killer9/article/details/124544947)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值