K8s常用运维命令
查看集群信息
[root@k8s-master ~]# kubectl cluster-info
查看各组件状态
kubectl -s http://localhost:8080 get componentstatuses
查看service清单
kubectl get service
查看pods清单
[root@k8s-master ~]# kubectl get pod
查看节点
kubectl get node
查看replicationControllers清单 (同理可以将命令中的replicationControllers变为replicationController也是可以的)
[root@k8s-master ~]# kubectl get replicationControllers
查看rc和namespace
[root@k8s-master ~]# kubectl get rc,namespace
查看pod和svc(和service一样)
以jison格式输出pod的详细信息.
kubectl get pods
注意下面命令中的pods的名称可以通过上面命令查看
[root@k8s-master ~]# kubectl get po nginx-controller-djd1b -o json
查看指定pod跑在哪个node上
[root@k8s-master ~]# kubectl get pod nginx-controller-djd1b -o wide
describe方法
describe类似于get,同样用于获取resource的相关信息。不同的是,get获得的是更详细的resource个性的详细信息,describe获得的是resource集群相关的信息。
describe命令同get类似,但是describe不支持-o选项,对于同一类型resource,describe输出的信息格式,内容域相同。
需要注意: 如果发现是查询某个resource的信息,使用get命令能够获取更加详尽的信息。但是如果想要查询某个resource的状态,如某个pod并不是在running状态,这时需要获取更详尽的状态信息时,就应该使用describe命令
create创建
kubectl命令用于根据文件或输入创建集群resource。如果已经定义了相应resource的yaml或json文件,直接kubectl create -f filename即可创建文件内定义的resource。也可以直接只用子命令[namespace/secret/configmap/serviceaccount]等直接创建相应的resource。从追踪和维护的角度出发,建议使用json或yaml的方式定义资源。
命令格式:
# kubectl create -f 文件名
replace更新替换资源
replace命令用于对已有资源进行更新、替换。如前面create中创建的nginx,当我们需要更新resource的一些属性的时候,如果修改副本数量,增加、修改label,更改image版本,修改端口等。都可以直接修改原yaml文件,然后执行replace命令。
需要注意: 名字不能被更更新。另外,如果是更新label,原有标签的pod将会与更新label后的rc断开联系,有新label的rc将会创建指定副本数的新的pod,但是默认并不会删除原来的pod。所以此时如果使用get po将会发现pod数翻倍,进一步check会发现原来的pod已经不会被新rc控制,
命令格式:
# kubectl replace -f nginx-rc.yaml
Delete
根据resource名或label删除resource。
# kubectl delete -f nginx-rc.yaml
# kubectl delete po nginx-controller-djd1b
logs
logs命令用于显示pod运行中,容器内程序输出到标准输出的内容。跟docker的logs命令类似。如果要获得tail -f 的方式,也可以使用-f选项。
# kubectl logs nginx-controller-djd1b
kubectl get service -n kube-system | grep dashboard