kubernetes命令(一)

摘要:
版权声明:本文为博主原创文章,支持原创。请附上原始来源和本通知的链接以供复制。本文链接地址:https://www.cnblogs.com/wannengachao/p/12073552.html1。查看pod格式:kubectlgetpod2。查看节点格式:kubectlgetnode3。查看pod详细信息格式:kubectlescribepodpod name[root@chushi~]#库伯特

版权声明:本文为博主原创文章,支持原创,转载请附上原文出处链接和本声明。

本文链接地址:https://www.cnblogs.com/wannengachao/p/12073552.html

1、查看pod

格式:kubectl get pod

2、查看node

格式:kubectl get node

3、查看pod详细信息

格式:kubectl describe pod pod名

[root@chushi ~]# kubectl describe pod redis
Name: redis
Namespace: default
Priority: 0
Node: kelong1/192.168.80.135
Start Time: Tue, 10 Dec 2019 11:48:09 +0800
Labels: db=redis
Annotations: <none>
Status: Running
IP: 10.244.1.12
Containers:
redis:
Container ID: docker://344d4b8888224c2eab6cc206a0fc73d1e1484f11de1293477663d0f4c768f5eb
Image: redis:latest
Image ID: docker-pullable://redis@sha256:1eedfc017b0cd3e232878ce38bd9328518219802a8ef37fe34f58dcf591688ef
Port: 6379/TCP
Host Port: 0/TCP
State: Running
Started: Fri, 13 Dec 2019 15:55:52 +0800
Last State: Terminated
Reason: Completed
Exit Code: 0
Started: Tue, 10 Dec 2019 11:48:19 +0800
Finished: Wed, 11 Dec 2019 16:16:44 +0800
Ready: True
Restart Count: 1
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-gzslg (ro)
Conditions:
Type Status
Initialized True
Ready False
ContainersReady True
PodScheduled True
Volumes:
default-token-gzslg:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-gzslg
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events: <none>  

4、查看node详细信息

格式:kubectl describe node node名

[root@chushi ~]# kubectl describe node chushi
Name: chushi
Roles: master
Labels: beta.kubernetes.io/arch=amd64
beta.kubernetes.io/os=linux
kubernetes.io/arch=amd64
kubernetes.io/hostname=chushi
kubernetes.io/os=linux
node-role.kubernetes.io/master=
Annotations: flannel.alpha.coreos.com/backend-data: {"VtepMAC":"66:ce:a3:7b:91:ad"}
flannel.alpha.coreos.com/backend-type: vxlan
flannel.alpha.coreos.com/kube-subnet-manager: true
flannel.alpha.coreos.com/public-ip: 192.168.80.128
kubeadm.alpha.kubernetes.io/cri-socket: /var/run/dockershim.sock
node.alpha.kubernetes.io/ttl: 0
volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp: Mon, 25 Nov 2019 15:30:54 +0800
Taints: node-role.kubernetes.io/master:NoSchedule
Unschedulable: false
Conditions:
Type Status LastHeartbeatTime LastTransitionTime Reason Message
---- ------ ----------------- ------------------ ------ -------
MemoryPressure False Fri, 20 Dec 2019 15:28:04 +0800 Mon, 25 Nov 2019 15:30:50 +0800 KubeletHasSufficientMemory kubelet has sufficient memory available
DiskPressure False Fri, 20 Dec 2019 15:28:04 +0800 Mon, 25 Nov 2019 15:30:50 +0800 KubeletHasNoDiskPressure kubelet has no disk pressure
PIDPressure False Fri, 20 Dec 2019 15:28:04 +0800 Mon, 25 Nov 2019 15:30:50 +0800 KubeletHasSufficientPID kubelet has sufficient PID available
Ready True Fri, 20 Dec 2019 15:28:04 +0800 Thu, 28 Nov 2019 22:27:54 +0800 KubeletReady kubelet is posting ready status
Addresses:
InternalIP: 192.168.80.128
Hostname: chushi
Capacity:
cpu: 2
ephemeral-storage: 28289540Ki
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 1867048Ki
pods: 110
Allocatable:
cpu: 2
ephemeral-storage: 26071640021
hugepages-1Gi: 0
hugepages-2Mi: 0
memory: 1764648Ki
pods: 110
System Info:
Machine ID: d6ee34812c7e4a918a4ac716500ada7d
System UUID: 3AF84D56-1EE2-5D07-0CA4-99F1BE843902
Boot ID: e2273d82-8657-474e-b866-47fb57772939
Kernel Version: 3.10.0-693.el7.x86_64
OS Image: CentOS Linux 7 (Core)
Operating System: linux
Architecture: amd64
Container Runtime Version: docker://18.6.1
Kubelet Version: v1.15.0
Kube-Proxy Version: v1.15.0
PodCIDR: 10.244.0.0/24
Non-terminated Pods: (9 in total)
Namespace Name CPU Requests CPU Limits Memory Requests Memory Limits AGE
--------- ---- ------------ ---------- --------------- ------------- ---
kube-system coredns-bccdc95cf-bgw9p 100m (5%) 0 (0%) 70Mi (4%) 170Mi (9%) 24d
kube-system coredns-bccdc95cf-wpbjz 100m (5%) 0 (0%) 70Mi (4%) 170Mi (9%) 24d
kube-system etcd-chushi 0 (0%) 0 (0%) 0 (0%) 0 (0%) 24d
kube-system kube-apiserver-chushi 250m (12%) 0 (0%) 0 (0%) 0 (0%) 24d
kube-system kube-controller-manager-chushi 200m (10%) 0 (0%) 0 (0%) 0 (0%) 24d
kube-system kube-flannel-ds-amd64-2dsdr 100m (5%) 100m (5%) 50Mi (2%) 50Mi (2%) 24d
kube-system kube-proxy-t2dm5 0 (0%) 0 (0%) 0 (0%) 0 (0%) 24d
kube-system kube-scheduler-chushi 100m (5%) 0 (0%) 0 (0%) 0 (0%) 24d
kube-system kubernetes-dashboard-79ddd5-x4rkc 0 (0%) 0 (0%) 0 (0%) 0 (0%) 23d
Allocated resources:
(Total limits may be over 100 percent, i.e., overcommitted.)
Resource Requests Limits
-------- -------- ------
cpu 850m (42%) 100m (5%)
memory 190Mi (11%) 390Mi (22%)
ephemeral-storage 0 (0%) 0 (0%)
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Starting 4m2s kubelet, chushi Starting kubelet.
Normal NodeHasSufficientMemory 4m2s (x8 over 4m2s) kubelet, chushi Node chushi status is now: NodeHasSufficientMemory
Normal NodeHasNoDiskPressure 4m2s (x8 over 4m2s) kubelet, chushi Node chushi status is now: NodeHasNoDiskPressure
Normal NodeHasSufficientPID 4m2s (x7 over 4m2s) kubelet, chushi Node chushi status is now: NodeHasSufficientPID
Normal NodeAllocatableEnforced 4m2s kubelet, chushi Updated Node Allocatable limit across pods
Normal Starting 3m50s kube-proxy, chushi Starting kube-proxy.

5、查看命名空间下所有的pod

格式:kubectl get pod --all-namespaces

kubernetes命令(一)第1张

 6、查看一个命名空间下的所有pod

格式:kubectl get pod -n 命名空间name

kubernetes命令(一)第2张

7、查看某个命名空间下的某个pod

格式:kubectl describe pod pod名 -n 命名空间名

[root@chushi ~]# kubectl describe pod kube-flannel-ds-amd64-2dsdr -n kube-system
Name: kube-flannel-ds-amd64-2dsdr
Namespace: kube-system
Priority: 0
Node: chushi/192.168.80.128
Start Time: Mon, 25 Nov 2019 15:39:24 +0800
Labels: app=flannel
controller-revision-hash=68bc74f4cc
pod-template-generation=1
tier=node
Annotations: <none>
Status: Running
IP: 192.168.80.128
Controlled By: DaemonSet/kube-flannel-ds-amd64
Init Containers:
install-cni:
Container ID: docker://2c00be015b66b9e32e9b67f68975b375713ba13b4633b135a2cb3980fa6ccbf7
Image: quay.io/coreos/flannel:v0.11.0-amd64
Image ID: docker-pullable://lizhenliang/flannel@sha256:bd76b84c74ad70368a2341c2402841b75950df881388e43fc2aca000c546653a
Port: <none>
Host Port: <none>
Command:
cp
Args:
-f
/etc/kube-flannel/cni-conf.json
/etc/cni/net.d/10-flannel.conflist
State: Terminated
Reason: Completed
Exit Code: 0
Started: Fri, 20 Dec 2019 15:25:08 +0800
Finished: Fri, 20 Dec 2019 15:25:08 +0800
Ready: True
Restart Count: 6
Environment: <none>
Mounts:
/etc/cni/net.d from cni (rw)
/etc/kube-flannel/ from flannel-cfg (rw)
/var/run/secrets/kubernetes.io/serviceaccount from flannel-token-pvw94 (ro)
Containers:
kube-flannel:
Container ID: docker://831b8254f9e489d70865c7d0c44c881c9833967dcb5fdf0decfa9cce2012980b
Image: quay.io/coreos/flannel:v0.11.0-amd64
Image ID: docker-pullable://lizhenliang/flannel@sha256:bd76b84c74ad70368a2341c2402841b75950df881388e43fc2aca000c546653a
Port: <none>
Host Port: <none>
Command:
/opt/bin/flanneld
Args:
--ip-masq
--kube-subnet-mgr
State: Running
Started: Fri, 20 Dec 2019 15:25:09 +0800
Last State: Terminated
Reason: Error
Exit Code: 137
Started: Fri, 13 Dec 2019 15:55:36 +0800
Finished: Mon, 16 Dec 2019 10:38:32 +0800
Ready: True
Restart Count: 6
Limits:
cpu: 100m
memory: 50Mi
Requests:
cpu: 100m
memory: 50Mi
Environment:
POD_NAME: kube-flannel-ds-amd64-2dsdr (v1:metadata.name)
POD_NAMESPACE: kube-system (v1:metadata.namespace)
Mounts:
/etc/kube-flannel/ from flannel-cfg (rw)
/run/flannel from run (rw)
/var/run/secrets/kubernetes.io/serviceaccount from flannel-token-pvw94 (ro)
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
run:
Type: HostPath (bare host directory volume)
Path: /run/flannel
HostPathType:
cni:
Type: HostPath (bare host directory volume)
Path: /etc/cni/net.d
HostPathType:
flannel-cfg:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: kube-flannel-cfg
Optional: false
flannel-token-pvw94:
Type: Secret (a volume populated by a Secret)
SecretName: flannel-token-pvw94
Optional: false
QoS Class: Guaranteed
Node-Selectors: <none>
Tolerations: :NoSchedule
node.kubernetes.io/disk-pressure:NoSchedule
node.kubernetes.io/memory-pressure:NoSchedule
node.kubernetes.io/network-unavailable:NoSchedule
node.kubernetes.io/not-ready:NoExecute
node.kubernetes.io/pid-pressure:NoSchedule
node.kubernetes.io/unreachable:NoExecute
node.kubernetes.io/unschedulable:NoSchedule
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedMount 17m kubelet, chushi MountVolume.SetUp failed for volume "flannel-token-pvw94" : couldn't propagate object cache: timed out waiting for the condition
Warning FailedMount 17m kubelet, chushi MountVolume.SetUp failed for volume "flannel-cfg" : couldn't propagate object cache: timed out waiting for the condition
Normal SandboxChanged 17m kubelet, chushi Pod sandbox changed, it will be killed and re-created.
Normal Pulled 17m kubelet, chushi Container image "quay.io/coreos/flannel:v0.11.0-amd64" already present on machine
Normal Created 17m kubelet, chushi Created container install-cni
Normal Started 17m kubelet, chushi Started container install-cni
Normal Pulled 17m kubelet, chushi Container image "quay.io/coreos/flannel:v0.11.0-amd64" already present on machine
Normal Created 17m kubelet, chushi Created container kube-flannel
Normal Started 17m kubelet, chushi Started container kube-flannel

8、查看service

格式:kubectl get svc

kubernetes命令(一)第3张

9、查看pvc

格式:kubectl get pvc

10、查看deploy

格式:kubectl get deploy

11、查看svc下的某个service详细信息

格式:kubectl describe svc service名

kubernetes命令(一)第4张

 12、查看集群信息

格式:kubectl cluster-info

第一项输出是APIserver地址

第二项输出是外部访问集群DNS的地址

 kubernetes命令(一)第5张

13、删除pod

格式:kubectl delete pod pod名

14、强制删除pod

格式:kubectl delete pod pod名 --force --grace-period=0 -n 命名空间name

kubernetes命令(一)第6张

15、简易列出pod运行所在的节点

kubectl get pod pod名 -o wide

简易列出namespaces下所有pod运行所在的节点

格式:kubectl get pod --all-namespaces -o wide

图上NODE项为所在节点,此处的IP是pod的IP

kubernetes命令(一)第7张

16、查看pod的yaml信息

格式: kubectl get pod pod名 -o yaml

[root@chushi ~]# kubectl get pod redis -o yaml
apiVersion: v1
kind: Pod
metadata:
creationTimestamp: "2019-12-20T08:21:47Z"
labels:
db: redis
name: redis
namespace: default
resourceVersion: "265437"
selfLink: /api/v1/namespaces/default/pods/redis
uid: 77764369-49af-4106-b916-b9394afc5386
spec:
containers:
- image: redis:latest
imagePullPolicy: Always
name: redis
ports:
- containerPort: 6379
protocol: TCP
resources: {}
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumeMounts:
- mountPath: /var/run/secrets/kubernetes.io/serviceaccount
name: default-token-gzslg
readOnly: true
dnsPolicy: ClusterFirst
enableServiceLinks: true
priority: 0
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
serviceAccount: default
serviceAccountName: default
terminationGracePeriodSeconds: 30
tolerations:
- effect: NoExecute
key: node.kubernetes.io/not-ready
operator: Exists
tolerationSeconds: 300
- effect: NoExecute
key: node.kubernetes.io/unreachable
operator: Exists
tolerationSeconds: 300
volumes:
- name: default-token-gzslg
secret:
defaultMode: 420
secretName: default-token-gzslg
status:
conditions:
- lastProbeTime: null
lastTransitionTime: "2019-12-20T08:21:47Z"
message: '0/3 nodes are available: 3 node(s) had taints that the pod didn''t tolerate.'
reason: Unschedulable
status: "False"
type: PodScheduled
phase: Pending
qosClass: BestEffort

17、编辑某个pod yaml信息

kubectl edit pod pod名

[root@chushi ~]# kubectl edit pod redis

dnsPolicy: ClusterFirst
enableServiceLinks: true
priority: 0
restartPolicy: Always
schedulerName: default-scheduler
securityContext: {}
serviceAccount: default
serviceAccountName: default
terminationGracePeriodSeconds: 30
tolerations:
- effect: NoExecute
key: node.kubernetes.io/not-ready
operator: Exists
tolerationSeconds: 300
- effect: NoExecute
key: node.kubernetes.io/unreachable
operator: Exists
tolerationSeconds: 300
volumes:
- name: default-token-gzslg
secret:
defaultMode: 420
secretName: default-token-gzslg
status:
conditions:
- lastProbeTime: null
lastTransitionTime: "2019-12-20T08:21:47Z"
message: '0/3 nodes are available: 3 node(s) had taints that the pod didn''t tolerate.'
reason: Unschedulable
status: "False"
type: PodScheduled
phase: Pending
qosClass: BestEffort

18、查看pod的labels信息

kubectl get pod pod名 --show-labels

若想查看所有的pod的labels信息 kubectl get pod --show-labels

kubernetes命令(一)第8张

 19、查看node的labels信息

kubectl get node node名 --show-labels

若想查看所有的node的labels信息 kubectl get node --show-labels

kubernetes命令(一)第9张

 20、实时监控pod创建

kubect get pod -w

21、查看api版本信息

kubectl api-versions

k8s把apiServer中所支持的API有多少种来进行分组管理,同一组下的所有版本都可使用。

好处:

不分组的话,一更新要更新所有。分组后某一组发生改变了,只需要改变一组皆可,其它组不受影响

一个组加了版本号后,可以让同一个组的不同版本号并存

API分三个版本阿尔法(内测版)、beta(公测版)、Stable(稳定版)

[root@chushi ~]# kubectl api-versions
admissionregistration.k8s.io/v1beta1
apiextensions.k8s.io/v1beta1
apiregistration.k8s.io/v1
apiregistration.k8s.io/v1beta1
apps/v1
apps/v1beta1
apps/v1beta2
authentication.k8s.io/v1
authentication.k8s.io/v1beta1
authorization.k8s.io/v1
authorization.k8s.io/v1beta1
autoscaling/v1
autoscaling/v2beta1
autoscaling/v2beta2
batch/v1
batch/v1beta1
certificates.k8s.io/v1beta1
coordination.k8s.io/v1
coordination.k8s.io/v1beta1
events.k8s.io/v1beta1
extensions/v1beta1
networking.k8s.io/v1
networking.k8s.io/v1beta1
node.k8s.io/v1beta1
policy/v1beta1
rbac.authorization.k8s.io/v1
rbac.authorization.k8s.io/v1beta1
scheduling.k8s.io/v1
scheduling.k8s.io/v1beta1
storage.k8s.io/v1
storage.k8s.io/v1beta1
v1

22、查看组件信息

kubectl get cs

kubernetes命令(一)第10张

 23、主节点重置

kubeadm reset

kubernetes命令(一)第11张

24、查看replication controllers

kubectl get rc

25、查看未授权CSR请求(未授权的节点)

kubectl get csr        ###kubelet 首次启动时向 kube-apiserver 发送CA(证书)签名请求,必须通过后 kubernetes系统才会将该 Node 加入到cluster。 自动生成 kubelet kubeconfig 文件和公私钥

26、将节点加入TLS认证

kubectl certificate approve {NodeName}

27、查看pod日志

kubectl logs pod名                            ###查看容器输出的日志;
kubectl logs -f pod名  -c 容器名        ### -f 动态查看容器的日志  不加 -f 非动态查看;
kubectl exec pod-name cmd            ###在podname中执行cmd命令,该命令用‘’扩好;
kubectl exec pod名  -c 容器名          ###在pod中的容器containername中执行命令;
kubectl exec -it pod名 -c 容器名 /bin/sh -n ns-2          ###进入pod 的容器中,执行一些命令;

28、进入pod中的某个容器

kubectl exec -it pod名 --container 容器名 -- /bin/bash

kubectl exec -it pod名 -c 容器名 -- /bin/bash

29、免交互执行pod中的命令

kubectl exec -n 命名空间   pod名字 ls

kubernetes命令(一)第12张

免责声明:文章转载自《kubernetes命令(一)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇deppin Linux下安装dockerH3C qos 简单配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

吾八哥学k8s(二):golang服务部署到kubernetes

本篇主要讲解如何将golang的服务部署到kubernetes集群里,附带相关的golang的demo和yml文件内容。纯新手入门方式,生产服务需要完整的CI/CD流程来支持。 golang服务代码 这里简单写一个k8s-demo的服务,提供两个接口ping和version接口,main.go文件代码如下: package main import (...

搭建Kubernetes集群时DNS无法解析问题的处理过程 k8s

作者:simpleapples ,来源:简书,原文链接 问题描述 在搭建Kubernetes集群过程中,安装了kube-dns插件后,运行一个ubuntu容器,发现容器内无法解析集群外域名,一开始可以解析集群内域名,一段时间后也无法解析集群内域名。 $ nslookup kubernetes.default Server: 10.99.0.2 Add...

构建gitlab+Jenkins+harbor+kubernetes的DevOps持续集成持续部署环境

构建gitlab+Jenkins+harbor+kubernetes的DevOps持续集成持续部署环境 整个环境的结构图。 一、准备工作 gitlab和harbor我是安装在kubernetes集群外的一台主机上的。 1.1、设置镜像源 docker-ce.repo [root@support harbor]# cat /etc/yum.repos.d/d...

一文详解云上自动化部署集群管理工具 Nebula Operator

本文首发于 Nebula Graph 公众号:Nebula Operator 开源啦!一文详解这个云上自动化部署集群管理工具 在介绍 Nebula Operator 之前,让我们先来了解下什么是 Operator。 Operator 是一种封装、部署和管理 Kubernetes 应用的方法,通过扩展 Kubernetes API 的功能,来管理用户创建、...

K8S从入门到放弃系列-(14)Kubernetes集群Dashboard部署

Dashboard是k8s的web界面,用户可以用 Kubernetes Dashboard 部署容器化的应用、监控应用、并对集群本身进行管理,在 Kubernetes Dashboard 中可以查看集群中应用的运行状态。 1、下载yaml配置文件 wget https://raw.githubusercontent.com/kubernetes/dash...

k8s学习笔记之五:volume,PV ,PVC

一,volume Ⅰ、emptyDir(pod消失就消失) 简介:emptyDir Volume是在Pod分配到node时创建的,从他的名称就能看得出来,它的出事内容为空,并且无需指定宿主机上对应的目录文件, 因为这是kubernetes自动分配的一个目录,当Pod从node上移除时,emptyDir中的数据也会被永久删除emptyDir的用途有: 例子1...