k8s常用命令集

kubectl  get pods 

kubectl  get pods 
NAME                                READY   STATUS    RESTARTS   AGE
nginx-deployment-565887c86b-2jv55   1/1     Running   0          6h15m
nginx-deployment-565887c86b-2sk6n   1/1     Running   0          6h15m

返回default空间下的pods列表

Name:pod的名称

READY:启动成功的数量/pod中的数量 

STATUS:状

AGE:启动时间

-o  wide

-o wide 返回宽的信息,增加了IP、所在结点信息等

[root@scms01 ~]# kubectl  get pods -o  wide
NAME                                READY   STATUS    RESTARTS   AGE     IP             NODE     NOMINATED NODE   READINESS GATES
nginx-deployment-565887c86b-2jv55   1/1     Running   0          6h25m   192.168.61.5   scms01   <none>           <none>
nginx-deployment-565887c86b-2sk6n   1/1     Running   0          6h25m   192.168.61.4   scms01   <none>           <none>

--all-namespaces

查看所有空间下的pods,可以看到不只有default空间还有kube-system空间

[root@scms01 ~]# kubectl get  pods  --all-namespaces
NAMESPACE     NAME                                      READY   STATUS    RESTARTS   AGE
default       nginx-deployment-565887c86b-2jv55         1/1     Running   0          6h52m
default       nginx-deployment-565887c86b-2sk6n         1/1     Running   0          6h52m
kube-system   calico-kube-controllers-57b57c56f-sgl6h   1/1     Running   0          6h54m
kube-system   calico-node-jgbsq                         1/1     Running   0          6h27m
kube-system   calico-node-pgjzb                         1/1     Running   0          6h54m
kube-system   coredns-5bbd96d687-mkf9p                  1/1     Running   0          7h51m
kube-system   coredns-5bbd96d687-qqjmw                  1/1     Running   0          7h51m
kube-system   etcd-scms01                               1/1     Running   0          7h51m
kube-system   kube-apiserver-scms01                     1/1     Running   0          7h51m
kube-system   kube-controller-manager-scms01            1/1     Running   0          7h51m
kube-system   kube-proxy-j5v5b                          1/1     Running   0          7h51m
kube-system   kube-proxy-rfk25                          1/1     Running   0          6h27m
kube-system   kube-scheduler-scms01                     1/1     Running   0          7h51m

 --namespace

制定某一空间

kubectl get pod  --namespace=kube-system

2fluentd-cloud-logging-clm8f              1/1     Running   0          29m

kubectl  get  svc

返回default空间下的pods列表

Name:当前service名称

TYPE:类型,分为多种比如ClusterIP、NodePort、LoadBalancer,ClusterIP是默认的类型,只能在集群内部进行访问、NodePort是在集群外部时候用的,是为外不能访问到集群,这个端口可以系统自动分配,也可以用户自己定义,LoadBalancer 不是由k8s集群维护,需要云服务上支持。

CLUSTER-IP:就是k8s分配的,及时NodePort模式,也会分配一个

EXTERNAL-IP:需要用户维护的一个外部IP地址池externalIPs,并且在service的描述中添加externalIPs字段,k8s并不负责维护externalIp的路由,需要有集群admin或者Iaas平台维护,该类型可以和service的任何类型一块使用,通过externalIPs也可以访问pod的

PORT(s): 协议和端口

[root@scms01 ~]# kubectl  get  svc
NAME            TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE
kubernetes      ClusterIP   10.96.0.1      <none>        443/TCP        7h27m
nginx-service   NodePort    10.103.42.23   <none>        80:30088/TCP   6h25m

 -o wide

增加了selector选择列

[root@scms01 ~]# kubectl  get  svc -o wide
NAME            TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)        AGE     SELECTOR
kubernetes      ClusterIP   10.96.0.1      <none>        443/TCP        7h40m   <none>
nginx-service   NodePort    10.103.42.23   <none>        80:30088/TCP   6h37m   app=nginx

--all-namespaces

查看所有空间下的pods,可以看到不只有default空间还有kube-system空间

kubectl get  svc --all-namespaces
NAMESPACE     NAME            TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)                  AGE
default       kubernetes      ClusterIP   10.96.0.1      <none>        443/TCP                  7h47m
default       nginx-service   NodePort    10.103.42.23   <none>        80:30088/TCP             6h45m
kube-system   kube-dns        ClusterIP   10.96.0.10     <none>        53/UDP,53/TCP,9153/TCP   7h47m

kubectl get nodes

Name:结点名称

STATUS:状态 not ready / ready

ROLES:

VERSION:运行的版本

[root@scms01 ~]# kubectl get nodes
NAME     STATUS   ROLES           AGE     VERSION
scms01   Ready    control-plane   7h41m   v1.26.3
scms02   Ready    <none>          6h17m   v1.26.3

kubectl get nodes -o wide

增加了Internal-ip / external-ip 

os-image:操作系统镜像

kernel-version:系统版本

container-runtime:运行时版本

kubectl get nodes -o wide
NAME     STATUS   ROLES           AGE     VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION                CONTAINER-RUNTIME
scms01   Ready    control-plane   7h41m   v1.26.3   172.16.2.220   <none>        CentOS Linux 7 (Core)   3.10.0-1160.45.1.el7.x86_64   containerd://1.6.19
scms02   Ready    <none>          6h18m   v1.26.3   172.16.2.221   <none>        CentOS Linux 7 (Core)   3.10.0-1160.45.1.el7.x86_64   containerd://1.6.19

kubectl  --namespace=空间名称 describe pod pod名称

查看某一个空间下运行信息,可以看到nginx-deployment-565887c86b-2jv55pod的所属空间为default、运行的节点名称和ip、Labels、当前状态、pod的IP、镜像名称、挂载路径以及Volume所属的信息

[root@scms01 ~]# kubectl  --namespace=default describe pod nginx-deployment-565887c86b-2jv55
Name:             nginx-deployment-565887c86b-2jv55
Namespace:        default
Priority:         0
Service Account:  default
Node:             scms01/172.16.2.220
Start Time:       Sat, 25 Mar 2023 11:46:30 +0800
Labels:           app=nginx
                  pod-template-hash=565887c86b
Annotations:      cni.projectcalico.org/containerID: f1903ea5e6f53b3f006585c59f223dad3d4f08eaf833277869eabdf1968cb13c
                  cni.projectcalico.org/podIP: 192.168.61.5/32
                  cni.projectcalico.org/podIPs: 192.168.61.5/32
Status:           Running
IP:               192.168.61.5
IPs:
  IP:           192.168.61.5
Controlled By:  ReplicaSet/nginx-deployment-565887c86b
Containers:
  nginx:
    Container ID:   containerd://ebe35228b24f86fc2492a1bc25d400026117db77b9e95e91716dcc5e0d32fd51
    Image:          nginx:1.23.2
    Image ID:       docker.io/library/nginx@sha256:ab589a3c466e347b1c0573be23356676df90cd7ce2dbf6ec332a5f0a8b5e59db
    Port:           80/TCP
    Host Port:      0/TCP
    State:          Running
      Started:      Sat, 25 Mar 2023 11:46:46 +0800
    Ready:          True
    Restart Count:  0
    Environment:    <none>
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-sh48h (ro)
Conditions:
  Type              Status
  Initialized       True 
  Ready             True 
  ContainersReady   True 
  PodScheduled      True 
Volumes:
  kube-api-access-sh48h:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              <none>
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:                      <none>

 kubectl describe node  [机器名]

查看某一个node描述

//节点名称
Name:               scms01
//角色
Roles:              control-plane
//里面有的默认标签
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/os=linux
                    kubernetes.io/arch=amd64
                    kubernetes.io/hostname=scms01
                    kubernetes.io/os=linux
                    node-role.kubernetes.io/control-plane=
                    node.kubernetes.io/exclude-from-external-load-balancers=
                    zone=north
Annotations:        kubeadm.alpha.kubernetes.io/cri-socket: unix:///var/run/containerd/containerd.sock
                    node.alpha.kubernetes.io/ttl: 0
                    projectcalico.org/IPv4Address: 172.16.2.220/20
                    projectcalico.org/IPv4IPIPTunnelAddr: 192.168.61.0
                    volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp:  Sat, 25 Mar 2023 10:46:15 +0800
Taints:             <none>
Unschedulable:      false
Lease:
  HolderIdentity:  scms01
  AcquireTime:     <unset>
  RenewTime:       Tue, 18 Apr 2023 16:21:05 +0800
Conditions:
  Type                 Status  LastHeartbeatTime                 LastTransitionTime                Reason                       Message
  ----                 ------  -----------------                 ------------------                ------                       -------
  NetworkUnavailable   False   Sat, 25 Mar 2023 11:44:10 +0800   Sat, 25 Mar 2023 11:44:10 +0800   CalicoIsUp                   Calico is running on this node
  MemoryPressure       False   Tue, 18 Apr 2023 16:19:40 +0800   Sat, 25 Mar 2023 10:46:14 +0800   KubeletHasSufficientMemory   kubelet has sufficient memory available
  DiskPressure         False   Tue, 18 Apr 2023 16:19:40 +0800   Sat, 25 Mar 2023 10:46:14 +0800   KubeletHasNoDiskPressure     kubelet has no disk pressure
  PIDPressure          False   Tue, 18 Apr 2023 16:19:40 +0800   Sat, 25 Mar 2023 10:46:14 +0800   KubeletHasSufficientPID      kubelet has sufficient PID available
  Ready                True    Tue, 18 Apr 2023 16:19:40 +0800   Sat, 25 Mar 2023 11:43:57 +0800   KubeletReady                 kubelet is posting ready status
//IP信息
Addresses:
  InternalIP:  172.16.2.220
  Hostname:    scms01
//容器,cpu
Capacity:
  cpu:                4
 ephemeral-storage:  103080204Ki
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             8008580Ki
  pods:               110
Allocatable:
  cpu:                4
  ephemeral-storage:  94998715850
  hugepages-1Gi:      0
  hugepages-2Mi:      0
  memory:             7906180Ki
  pods:               110
System Info:
  Machine ID:                 20211123171600472607520636465043
  System UUID:                DB95B241-326D-4BDC-A7F8-C47D88269969
  Boot ID:                    d3c76052-e932-496f-bbfa-9ff7193cfd63
  Kernel Version:             3.10.0-1160.45.1.el7.x86_64
  OS Image:                   CentOS Linux 7 (Core)
  Operating System:           linux
  Architecture:               amd64
  Container Runtime Version:  containerd://1.6.19
  Kubelet Version:            v1.26.3
  Kube-Proxy Version:         v1.26.3
Non-terminated Pods:          (16 in total)
  Namespace                   Name                                       CPU Requests  CPU Limits  Memory Requests  Memory Limits  Age
  ---------                   ----                                       ------------  ----------  ---------------  -------------  ---
  default                     myweb-7cd9fb577f-jpm4q                     0 (0%)        0 (0%)      0 (0%)           0 (0%)         9d
  default                     nginx-deployment-565887c86b-2jv55          0 (0%)        0 (0%)      0 (0%)           0 (0%)         24d
  default                     nginx-deployment-565887c86b-2sk6n          0 (0%)        0 (0%)      0 (0%)           0 (  



kube-system                 2fluentd-cloud-logging-clm8f               100m (2%)     100m (2%)   200Mi (2%)       200Mi (2%)     45m
  kube-system                 calico-kube-controllers-57b57c56f-sgl6h    0 (0%)        0 (0%)      0 (0%)           0 (0%)         24d
  kube-system                 calico-node-pgjzb                          250m (6%)     0 (0%)      0 (0%)           0 (0%)         24d
  kube-system                 coredns-5bbd96d687-mkf9p                   100m (2%)     0 (0%)      70Mi (0%)        170Mi (2%)     24d
  kube-system                 coredns-5bbd96d687-qqjmw                   100m (2%)     0 (0%)      70Mi (0%)        170Mi (2%)     24d
  kube-system                 etcd-scms01                                100m (2%)     0 (0%)      100Mi (1%)       0 (0%)         24d
  kube-system                 kube-apiserver-scms01                      250m (6%)     0 (0%)      0 (0%)           0 (0%)         24d
  kube-system                 kube-controller-manager-scms01             200m (5%)     0 (0%)      0 (0%)           0 (0%)         24d
  kube-system                 kube-proxy-j5v5b                           0 (0%)        0 (0%)      0 (0%)           0 (0%)         24d
  kube-system                 kube-scheduler-scms01                      100m (2%)     0 (0%)      0 (0%)           0 (0%)         24d
Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource           Requests     Limits
  --------           --------     ------
  cpu                1200m (30%)  100m (2%)
  memory             440Mi (5%)   540Mi (6%)
  ephemeral-storage  0 (0%)       0 (0%)
  hugepages-1Gi      0 (0%)       0 (0%)
  hugepages-2Mi      0 (0%)       0 (0%)
Events:              <none>

kubectl get nodes

查看所有的node节点

[root@scms01 day3]# kubectl get nodes
NAME     STATUS   ROLES           AGE   VERSION
scms01   Ready    control-plane   17d   v1.26.3
scms02   Ready    <none>          17d   v1.26.3

 kubectl  label  nodes  scms01   zone=north2

给节点scms01增加标签zone=north2

kubectl get node --show-labels

查看标签

kubectl get node --show-labels
NAME     STATUS   ROLES           AGE   VERSION   LABELS
scms01   Ready    control-plane   17d   v1.26.3   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=scms01,kubernetes.io/os=linux,node-role.kubernetes.io/control-plane=,node.kubernetes.io/exclude-from-external-load-balancers=,zone=north
scms02   Ready    <none>          17d   v1.26.3   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=scms02,kubernetes.io/os=linux,zone=north

可见在一个节点上,打了很多个标签

kubectl delete  资源 资源名称   --namespace=kube-system

kubectl delete  daemonset   2fluentd-cloud-logging   --namespace=kube-system

kubectl logs  资源名称  --namespace=kube-system

这个命令非常有用,当你的服务起不来的时候,可以查看问题

kubectl config view

kubectl config view 是一个 Kubernetes 命令行工具(kubectl)的命令,用于查看当前 kubeconfig 文件的详细信息。kubeconfig 文件是一个配置文件,用于管理 Kubernetes 集群、用户和上下文等信息。

使用 kubectl config view 命令可以查看当前 kubeconfig 文件中定义的所有集群、用户和上下文等信息,并以 YAML 或 JSON 格式返回输出结果。此外,您还可以使用该命令来查看当前所选的上下文,以及默认的 API Server 地址和认证信息等。

例如,在以下示例中,使用 kubectl config view 命令可以得到一个基本的 YAML 输出:

$ kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: ...
    server: https://172.16.0.10:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubectl-user
  name: kubectl-context
current-context: kubectl-context
kind: Config
preferences: {}
users:
- name: kubectl-user
  user:
    client-certificate-data: ...
    client-key-data: ...

在上面的输出中,可以看到 kubeconfig 文件中定义了一个名为 kubectl-context 的上下文,其包含了一个名为 kubernetes 的集群和一个名为 kubectl-user 的用户。

--raw

是一个 kubectl config view 命令的参数,用于指示 kubectl 输出原始的配置文件格式。使用 --raw 参数后,输出中将以原始格式(YAML 或 JSON)显示 Kubernetes 配置文件,而不会对其进行任何格式化或缩进。

--minify

是一个 kubectl config view 命令的参数,用于指示 kubectl 输出一个最小化的版本的配置文件。使用 --minify 参数后,输出中将只包含当前所选上下文的信息,这有助于简化输出并提高可读性。

kubectl --v=8

是一个 Kubernetes 命令行工具(kubectl)的参数,用于指定 kubectl 输出的日志级别。在 Kubernetes 中,日志级别分为以下几个等级:

  • 0:仅输出关键信息和错误消息。
  • 1:输出所有关键信息、警告和错误消息。
  • 2:输出所有信息、警告和错误消息。
  • 3:输出更详细的信息、警告和错误消息。
  • 4 或更高:输出调试信息以及更详细的警告和错误消息。

使用 --v=8 参数后,kubectl 将输出大量的调试信息,并将所有 HTTP 请求和响应都记录到日志中。这对于排查一些比较难懂的问题非常有用,但是也会占用大量的磁盘空间,并且可能会影响性能。

例如,在以下示例中,使用 --v=8 参数可以得到一个非常详细的输出,其中包含了所有的 HTTP 请求和响应信息:

$ kubectl get pods --v=8
...
I0313 17:12:09.456897   11815 loader.go:357] Config loaded from file /home/user/.kube/config
I0313 17:12:09.458163   11815 round_trippers.go:419] GET https://172.16.0.10:6443/api/v1/namespaces/default/pods?limit=500
I0313 17:12:09.458179   11815 round_trippers.go:426] Request Headers:
I0313 17:12:09.458187   11815 round_trippers.go:430]     Accept: application/json, */*
I0313 17:12:09.459184   11815 round_trippers.go:447] Response Status: 200 OK
I0313 17:12:09.459210   11815 round_trippers.go:450] Response Headers:
...

在上面的输出中,可以看到大量的信息,其中包括了所有的请求和响应头、正文等详细信息

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值