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