k8s常用操作命令
1、更改服务的type:
./kubectl edit svc test0927-1-service -n ns-2查看到type是ClusterIP的;
更改type为NodePort之后,该TYPE类型更新了:
如果要把类型从NodePort,改回ClusterIP,./kubectl edit svc test0927-1-service -n ns-2后,需要删除里面的30999的端口行
如果没有删除端口行30999,就会显示编辑失败:
./kubectl edit svc test0927-1-service -n ns-2同时,也是能看到服务的yaml内容的一种方式;
2、./kubectl get pod -o wide -n ns-2 查询pod值的命令中加上格式wide,能多展示两列:IP和NODE:
3、./kubectl get all -o wide --all-namespaces ---查看所有命名空间下的所有信息
4、 kubectl get ns 获取所有的命名空间
5、查看指定命令空间下所有服务信息:
./kubectl get all -n ns-2
6、指定命名空间下获取某种类型对象的所有信息
例如:kubectl -n kube-system get pods -获取 kube-system命名空间下所有pods信息
7、kubectl cluster-info 查看集群状态
Kubernetes master is running at https://10.20.16.99:8443
Heapster is running at https://10.20.16.99:8443/api/v1/namespaces/kube-system/services/eventer/proxy
Heapster is running at https://10.20.16.99:8443/api/v1/namespaces/kube-system/services/heapster/proxy
8、label 相关操作:
kubectl label node nodename key=value 给node节点标注一个label
比如执行如下命令标注k8s-node1是配置了SSD的节点。
kubectl label node k8s-node1 disktype=ssd
然后通过kubectl get node --show-labels查看节点
kubectl label node nodename key- 把node节点的label:key删除掉
kubectl get node --show-labels 查看一个node节点的标签信息
kubectl get node --show-labels 获取node上的label信息;
NAME STATUS ROLES AGE VERSION LABELS
10.1.235.27 Ready <none> 21d v1.8.6-dirty beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=10.1.235.27
10.1.235.28 Ready <none> 21d v1.8.6-dirty beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/hostname=10.1.235.28
9、获取daemonset 信息
kubectl get daemonset --all-namespaces 查询所有namespace下的daemonset
DaemonSet kube-flannel-ds和kube-proxy分别负责在每个节点上运
行flannel和kube-proxy组件,因为flannel和kube-proxy属于系统组件,需要在命令行中通过--
namespace=kube-system指定namespace kube-system。若不指定,则只
返回默认namespace default中的资源。
./kubectl get pod -o wide -n ns-2 查询pod值的命令中加上格式wide,能多展示两列:IP和NODE:
kubectl get pods 获取的默认是namespace为default的所有pods;
kubectl get pods -n ns-2 加上-n的参数,就可以查看到具体的namespace下的pods信息;
./kubectl get deployment --all-namespaces 是可以查看到所有的namespace下的pods信息;
kubectl get svc -n ns-2 ----有些服务的service是查看不到的:nginx的服务没有service。 还有服务如果没有容器端口的话,也没有service
例如id是2,则ns是ns-2;
kubectl -n ns-2 get pods
flannel这个网卡的功能是为了跨主机和跨pod的访问;
10、日志类命令:
kubectl logs pod-name 查看容器中输出的日志;
kubectl logs -f podname -c containername 跟踪查看下具体容器的日志,相当于是tail -f
kubectl exec pod-name cmd: ---在podname中执行cmd命令,该命令用‘’扩好;
kubectl exec pod-name -c containername 命令: ---在podname中的容器containername中执行命令;
kubectl exec -it common-1-controller-786c6c76dd-lqzc8 -c common-0 /bin/sh -n ns-2 进入pod common-1-controller-786c6c76dd-lqzc8内的容器common-0中,执行一些命令;
/ # date
Fri Sep 28 15:01:12 CST 2018
/ #
查看pods中的容器:
kubectl describe pods srvregtom-0723nie-001-1-controller-5664dd5fcc-tk222 -n ns-2 |grep "Container ID"
Container ID: docker://51411280865c6a40f4843b80a2fe180258f881e0071bcf21173c0535dd55ba44
Container ID: docker://315a3c1b5e1f9d4e91413e32beacd442765f2d65639bcd0706d3bc8bb851f50d
查看pod中容器名: kubectl get pod 《pod-name》 -o jsonpath='{.spec.containers[*].name}'
进入pod中指定容器: kubectl exec -it <pod-name> -c <container-name> -- /bin/bash
标签:node,kubectl,ns,get,常用命令,pod,k8s,kube From: https://www.cnblogs.com/Lqdream/p/17526199.html