跳过正文
  1. Posts/

K8s常用运维命令

·117 字·1 分钟·
Kubehan
作者
Kubehan
云原生知识栈:深度解析容器技术、Kubernetes、Istio、DevOps 实践、Prometheus 监控、Envoy 代理、Golang 开发及云原生架构与微服务趋势的专业博客

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