kubernetes 常用操作命令

记录 kubectl 工具的常用命令

Kubernetes 命令

完整命令使用手册

创建

  • 创建一个Namespace
1
kubectl create namespace NAMESPACE
  • 使用 yaml 文件创建一个 Namespace
1
kubectl create -f xxx.yaml
  • 将某个 yaml 文件应用到某个 Namespace 上
1
kubectl create -f xxx.yaml --namespace=NAMESPACE
  • 手动创建一个 Deployment
1
kubectl run NAME --image=IMAGE --replicas=1 --namespace=NAMESPACE

查看

kubectl get 命令如果不加参数将仅显示属于 default 命名空间的资源对象

  • 查看集群中 Node 的详细信息:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
kubectl describe nodes NODENAME
# Node 的名称、标签、创建时间等
# Node 的运行状态:磁盘空间(DiskPressure)、内存(MemoryPressure)、网络(NetworkUnavailable)、PID资源(PIDPressure)全部正常则设置Node为Ready
# Node 的主机地址和主机名
# Node 上的资源数量:Node 的可用资源,包括 CPU、内存数量、最大可调度 Pod 数量等
# Node 可分配资源类:Node 当前可用于分配的资源量
# 主机系统信息:主机 ID、系统 UUID、Linux kernel 版本号、操作系统类型与版本、runtime 版本号、kubelet 与 kube-proxy 版本号等
# 当前运行的 Pod 列表的概要信息
# 已分配的资源使用概要信息,如资源申请的最低、最大允许使用量占系统总量的百分比
# Node 相关的 Event 信息
  • 查看 Pod 的详细信息
1
kubectl describe pod PODNAME
  • 查看已终止容器之前的状态信息
1
kubectl get pod -o go-template='{{range.status.containerStatuses}}{{"\r\nContainer Name:"}}{{.name}}{{"\r\nLastState: "}}{{.lastState}}{{"\r\n"}}{{end}}'
  • 查看当前所有 Namespace
1
kubectl get namespaces
  • 查看 ResourceQuota 的详细信息
1
kubectl describe quota ResourceQuotaName --namespace=NAMESPACE
  • 查看 Deployment 的信息
1
2
3
4
5
kubectl get deployments (--all-namespaces)
# DESIRED: Pod 副本数量的期望值
# CURRENT: 当前 Replica 的值
# UP-TO-DATE: 最新版本的 Pod 副本数量
# AVAILABLE: 当前集群可用的 Pod 副本数量,存活数量
  • 查看 Deployment 的详细信息
1
kubectl describe deployment podname --namespace=NAMESPACE
  • 查看当前所有的 ReplicaSet
1
kubectl get rs (--all-namespaces)
  • 查看 Deployment 的 ReplicaSet 的详细信息
1
kubectl describe rs PODNAME --namespace=NAMESPACE
  • 查看 Namespace 中的 LimitRange
1
kubectl describe limits LIMITSNAME --namespace=NAMESPACE
  • 查看 Endpoint 列表
1
kubectl get endpoint
  • 查看 Service 的详细信息
1
2
3
4
kubectl get svc SERVICENAME -o yaml
# spec.ports 的 targetPord 用来确定提供该服务的容器所暴露的端口号,即业务进程在容器内的 TCP/IP 接入端口
# spec.ports 的 port 定义了 Service 的虚端口
# 如果定义服务时没定义 targetPort,则默认 targetPort 和 port 相同

修改

  • 修改 RC 的副本数量,实现 Pod 的动态缩放
1
kubectl scale rc PODNAME --replicas=3
  • 给 Node 打上标签
1
kubectl label nodes <node-name> <label-key>=<label-value>
Built with Hugo
主题 StackJimmy 设计