k8s常用操作命令

想查看kubectl命令的方法:
kubectl help 
kubectl --help
 

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的端口行

k8s常用操作命令_第1张图片

如果没有删除端口行30999,就会显示编辑失败:

 ./kubectl edit svc  test0927-1-service -n ns-2同时,也是能看到服务的yaml内容的一种方式;

 

2、./kubectl get pod -o  wide  -n ns-2   查询pod值的命令中加上格式wide,能多展示两列:IP和NODE:

k8s常用操作命令_第2张图片

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

kubectl配置位于~/.kube/config。

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        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        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

 

11、pods与containers的细微区别,docker和kubectl的区别
默认情况下,如果进程退出,pods是不会终止,相反,它会重新启动该进程。
这与docker run 配置--restart=always 选项有一个主要区别。要查看以前在Kubernetes中运行的输出,请运行如下:

$ docker run -d --restart=always -e DOMAIN=cluster --name nginx-app -p 80:80 nginx

$ kubectl run --image=nginx nginx-app --port=80 --env="DOMAIN=cluster"

我们可以使用上面创建的Deployment来暴露一个新的服务:
$ kubectl expose deployment nginx-app --port=80 --name=nginx-http

默认情况下镜像在后台运行,类似于docker run -d ...如果要在前台运行,请使用:
kubectl run [-i] [--tty] --attach --image=
要删除Deployment (及其pod),使用 kubectl delete deployment
获取当前运行的pods信息:
$ kubectl get po

12、

kubectl  top node
NAME           CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
10.1.241.159   1162m        7%     29846Mi         46%
10.1.241.160   1007m        6%     27369Mi         42%
10.1.241.161   937m         5%     34013Mi         52%

 

12、其他命令
kubectl  top pod -n ns-222222
NAME                                CPU(cores)   MEMORY(bytes)
deploy-app02-7dbf964cbf-kgw28       1m           6Mi
deploy-app02-7dbf964cbf-xn46n       1m           6Mi
deploy-app1-8665b9574d-lq9nb        0m           1Mi
deploy-app1-8665b9574d-t2vkk        0m           1Mi
deploy-newapp-5bdd9d5c69-mmsc8      0m           1Mi
deploy-normalapp-5f4b69b8bc-k7mk5   1m           7Mi

kubectl api-resources
NAME                              SHORTNAMES   APIGROUP                       NAMESPACED   KIND
bindings                                                                      true         Binding
componentstatuses                 cs                                          false        ComponentStatus
configmaps                        cm                                          true         ConfigMap


kubectl  api-versions

kubectl config  view
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://10.1.241.248:8443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: admin
  name: kubernetes
current-context: kubernetes
kind: Config
preferences: {}
users:
- name: admin
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED

kubectl  get ingress -n kube-system
NAME                     HOSTS   ADDRESS   PORTS   AGE
spark-operator-metrics   *                 80      29d
编辑ingress
kubectl edit ingress  spark-operator-metrics  -n kube-system

13、查看命名空间ingress-nginx中的configmap信息:

查看具体的configmap信息,可以查看到分配的外部服务端口:

k8s常用操作命令_第3张图片

 

14、k8s服务的访问方式:

k8s负载均衡打开时,有两种协议可以选择:http或者tcp:
1、协议是http时,是通过访问URL(http://域名.com):应用概览部分有;
访问:
[root@host-10-1-241-160 ~]# curl -v  "http://df222222.com/"
* About to connect() to df222222.com port 80 (#0)
*   Trying 47.56.8.110...
* Connected to df222222.com (47.56.8.110) port 80 (#0)
> GET / HTTP/1.1
> User-Agent: curl/7.29.0
> Host: df222222.com
> Accept: */*
>
< HTTP/1.1 307 Temporary Redirect
< Server: openresty
< Date: Mon, 02 Dec 2019 06:29:10 GMT
< Content-Type: text/html; charset=utf-8
< Content-Length: 168
< Connection: keep-alive
< Location: https://df222222.com:7822/
<

307 Temporary Redirect

307 Temporary Redirect



openresty


你可能感兴趣的:(k8s)