您当前的位置:首页 > 计算机 > 服务器 > 网络服务

【输出内容详细版】查看Kubernetes集群基本信息(初学者版)

时间:04-15来源:作者:点击数:

当Kubernetes集群构建完成时,我们需要先查看集群内的一些信息来了解Kubernetes集群。这些信息包括集群节点,Kubernetes版本,Kubernetes API对象(Kubernetes中的资源类型)及其版本,Kubernetes上下文和配置等信息。

Kubernetes集群搭建的教程传送门:

1. 查看集群节点

kubectl get nodes:显示节点名,状态,角色,存活时间和版本。

root@k8s-01:~# kubectl get nodes
NAME     STATUS   ROLES                  AGE    VERSION
k8s-01   Ready    control-plane,master   160m   v1.22.1
k8s-02   Ready    <none>                 150m   v1.22.1
k8s-03   Ready    <none>                 152m   v1.22.1

字段解释:

字段 NAME STATUS ROLES AGE ERSION
中文 节点名 状态 角色 存活时间 版本
说明 k8s节点名 节点状态:Ready或NotReady 节点在集群中扮演的角色 从节点创建后至现在的时间统计 Kubernetes版本(即kubelet版本)

示例:

k8s-01节点的状态是Ready,表明节点kubelet服务正常运行,角色是控制面,master,已经创建了160分钟,kubelet版本是1.22.1。

2. 查看集群信息

kubectl cluster-info:显示主控节点和服务的地址。

root@k8s-01:~# kubectl cluster-info
Kubernetes control plane is running at https://10.117.136.98:6443
CoreDNS is running at https://10.117.136.98:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
  • Kubernetes 控制平面在 https://10.117.136.98:6443 运行。
  • CoreDNS 在 https://10.117.136.98:6443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy 运行。
  • 进一步调试和诊断集群问题,使用kubectl cluster-info dump将当前集群状态转储到标准输出)。

3. 查看集群版本

输出格式为字典,同时输出server版本和client版本。

root@k8s-01:~# kubectl version
Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.1", GitCommit:"632ed300f2c34f6d6d15ca4cef3d3c7073412212", GitTreeState:"clean", BuildDate:"2021-08-19T15:45:37Z", GoVersion:"go1.16.7", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.1", GitCommit:"632ed300f2c34f6d6d15ca4cef3d3c7073412212", GitTreeState:"clean", BuildDate:"2021-08-19T15:39:34Z", GoVersion:"go1.16.7", Compiler:"gc", Platform:"linux/amd64"}

kubectl version=kubectl version --client=false --short=false

3.1 简化输出格式

root@k8s-01:~# kubectl version  --short=true
Client Version: v1.22.1
Server Version: v1.22.1

3.2 只输出客户端版本

root@k8s-01:~# kubectl version --client=true
Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.1", GitCommit:"632ed300f2c34f6d6d15ca4cef3d3c7073412212", GitTreeState:"clean", BuildDate:"2021-08-19T15:45:37Z", GoVersion:"go1.16.7", Compiler:"gc", Platform:"linux/amd64"}

4. 查看可用的 API 资源

kubectl api-resources:列出所支持的全部资源类型及其简称、API 组, 是否是命名空间作用域和 Kind。

root@k8s-01:~# kubectl api-resources
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

字段解释:

字段 NAME SHORTNAMES APIVERSION NAMESPACED KIND
中文 资源名 缩写名 API 版本 按命名空间 资源类型
说明 资源名称 资源的缩写 每个资源都有自己的API组 是否是命名空间作用域
true表示该资源的作用域是命名空间
false表示该资源为全局资源。
KIND字段的值

示例:

nodes资源的缩写是no,API组是v1,它是全局对象。所以我们在查询节点信息时,可以使用下面三种命令查询:

kubectl get nodes
kubectl get no
kubectl get node
  • 使用全称或者缩写都可以查询。
  • kubectl api-resources命令输出中,有些资源是复数形式,但在对该资源进行CRUD(增删改查)等操作时,可以使用复数形式的单词,也可以使用非复数形式。对操作没有任何影响。
  • 如果资源名中没有使用复数形式,就不可以自行添加复数形式,否则会报错。
    例如Kubernetes对象assign在输出中不是复数,所以不可以在CRUD时擅自改为assigns
    在这里插入图片描述

下表列出所有受支持的资源类型及其缩写别名。

(以下输出可以通过kubectl api-resources获取,内容以 Kubernetes 1.25.0 版本为准。)

资源名 缩写名 API 版本 按命名空间 资源类型
bindings   v1 true Binding
componentstatuses cs v1 false ComponentStatus
configmaps cm v1 true ConfigMap
endpoints ep v1 true Endpoints
events ev v1 true Event
limitranges limits v1 true LimitRange
namespaces ns v1 false Namespace
nodes no v1 false Node
persistentvolumeclaims pvc v1 true PersistentVolumeClaim
persistentvolumes pv v1 false PersistentVolume
pods po v1 true Pod
podtemplates   v1 true PodTemplate
replicationcontrollers rc v1 true ReplicationController
resourcequotas quota v1 true ResourceQuota
secrets   v1 true Secret
serviceaccounts sa v1 true ServiceAccount
services svc v1 true Service
mutatingwebhookconfigurations   admissionregistration.k8s.io/v1 false MutatingWebhookConfiguration
validatingwebhookconfigurations   admissionregistration.k8s.io/v1 false ValidatingWebhookConfiguration
customresourcedefinitions crd,crds apiextensions.k8s.io/v1 false CustomResourceDefinition
apiservices   apiregistration.k8s.io/v1 false APIService
controllerrevisions   apps/v1 true ControllerRevision
daemonsets ds apps/v1 true DaemonSet
deployments deploy apps/v1 true Deployment
replicasets rs apps/v1 true ReplicaSet
statefulsets sts apps/v1 true StatefulSet
tokenreviews   authentication.k8s.io/v1 false TokenReview
localsubjectaccessreviews   authorization.k8s.io/v1 true LocalSubjectAccessReview
selfsubjectaccessreviews   authorization.k8s.io/v1 false SelfSubjectAccessReview
selfsubjectrulesreviews   authorization.k8s.io/v1 false SelfSubjectRulesReview
subjectaccessreviews   authorization.k8s.io/v1 false SubjectAccessReview
horizontalpodautoscalers hpa autoscaling/v2 true HorizontalPodAutoscaler
cronjobs cj batch/v1 true CronJob
jobs   batch/v1 true Job
certificatesigningrequests csr certificates.k8s.io/v1 false CertificateSigningRequest
leases   coordination.k8s.io/v1 true Lease
endpointslices   discovery.k8s.io/v1 true EndpointSlice
events ev events.k8s.io/v1 true Event
flowschemas   flowcontrol.apiserver.k8s.io/v1beta2 false FlowSchema
prioritylevelconfigurations   flowcontrol.apiserver.k8s.io/v1beta2 false PriorityLevelConfiguration
ingressclasses   networking.k8s.io/v1 false IngressClass
ingresses ing networking.k8s.io/v1 true Ingress
networkpolicies netpol networking.k8s.io/v1 true NetworkPolicy
runtimeclasses   node.k8s.io/v1 false RuntimeClass
poddisruptionbudgets pdb policy/v1 true PodDisruptionBudget
podsecuritypolicies psp policy/v1beta1 false PodSecurityPolicy
clusterrolebindings   rbac.authorization.k8s.io/v1 false ClusterRoleBinding
clusterroles   rbac.authorization.k8s.io/v1 false ClusterRole
rolebindings   rbac.authorization.k8s.io/v1 true RoleBinding
roles   rbac.authorization.k8s.io/v1 true Role
priorityclasses pc scheduling.k8s.io/v1 false PriorityClass
csidrivers   storage.k8s.io/v1 false CSIDriver
csinodes   storage.k8s.io/v1 false CSINode
csistoragecapacities   storage.k8s.io/v1 true CSIStorageCapacity
storageclasses sc storage.k8s.io/v1 false StorageClass
volumeattachments   storage.k8s.io/v1 false VolumeAttachment

5. 查看可用的 API 版本

该命令可以应用于使用编程方式访问 Kubernetes API 时。

root@k8s-01:~# kubectl api-versions
admissionregistration.k8s.io/v1
apiextensions.k8s.io/v1
apiregistration.k8s.io/v1
apps/v1
authentication.k8s.io/v1
authorization.k8s.io/v1
autoscaling/v1
autoscaling/v2beta1
autoscaling/v2beta2
batch/v1
batch/v1beta1
certificates.k8s.io/v1
coordination.k8s.io/v1
crd.projectcalico.org/v1
discovery.k8s.io/v1
discovery.k8s.io/v1beta1
events.k8s.io/v1
events.k8s.io/v1beta1
flowcontrol.apiserver.k8s.io/v1beta1
networking.k8s.io/v1
node.k8s.io/v1
node.k8s.io/v1beta1
policy/v1
policy/v1beta1
rbac.authorization.k8s.io/v1
scheduling.k8s.io/v1
storage.k8s.io/v1
storage.k8s.io/v1beta1
v1

6.查看Kubectl 上下文和配置

查看kubeconfig文件,可以用来做认证文件。

root@k8s-01:~# kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: DATA+OMITTED
    server: https://10.117.136.98:6443
  name: kubernetes
contexts:
- context:
    cluster: kubernetes
    user: kubernetes-admin
  name: kubernetes-admin@kubernetes
current-context: kubernetes-admin@kubernetes
kind: Config
preferences: {}
users:
- name: kubernetes-admin
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED

7. 查看集群配置

如果用的是kubeadm创建的集群,可以使用下面命令查看集群配置

kubectl get cm -o yaml -n kube-system kubeadm-config

该命令等效于kubeadm config view(已经被弃用)

root@k8s-01:~# kubectl get cm -o yaml -n kube-system kubeadm-config
apiVersion: v1
data:
  ClusterConfiguration: |
    apiServer:
      extraArgs:
        authorization-mode: Node,RBAC
      timeoutForControlPlane: 4m0s
    apiVersion: kubeadm.k8s.io/v1beta3
    certificatesDir: /etc/kubernetes/pki
    clusterName: kubernetes
    controllerManager: {}
    dns: {}
    etcd:
      local:
        dataDir: /var/lib/etcd
    imageRepository: registry.aliyuncs.com/google_containers
    kind: ClusterConfiguration
    kubernetesVersion: v1.22.1
    networking:
      dnsDomain: cluster.local
      podSubnet: 10.244.0.0/16
      serviceSubnet: 10.96.0.0/12
    scheduler: {}
kind: ConfigMap
metadata:
  creationTimestamp: "2022-09-01T13:04:28Z"
  name: kubeadm-config
  namespace: kube-system
  resourceVersion: "211"
  uid: c519ae1b-a820-4d30-9803-c46bc84b2e0f
root@k8s-01:~#

其中,data字段的值是集群配置。从结果中可以查看

  • API服务器的鉴权模式(authorization mode)
  • 集群名
  • etc的存储位置
  • 使用的镜像仓库是什么
  • kubernetes版本
  • DNS域名
  • pod的子网网段
  • 服务的子网网段

8. 参考资料

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门