k8s--基础--10.2--命令--kubectl--常用命令

k8s–基础–10.2–命令–kubectl–常用命令


前提

使用root用户

1、api-versions

1.1、语法

kubectl api-versions [flags]

列出可用的api版本

1.2、案例

root@master1 k8s]# kubectl api-versions 
admissionregistration.k8s.io/v1
admissionregistration.k8s.io/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

2、apply

2.1、语法

kubectl apply -f FILENAME [flags]

使用文件或者标准输入来创建或者更新k8s的资源

2.2、案例:指定文件创建资源

# 使用kubernetes-dashboard.yaml  创建dashboard资源
kubectl apply -f /root/k8s/kubernetes-dashboard.yaml 
 

在这里插入图片描述

2.3、案例:指定目录创建资源

# 使用 /root/k8s/test 路径下的任意 .yaml, .yml, 或 .json 文件 创建资源
kubectl apply -f /root/k8s/test

在这里插入图片描述

3、get

3.1、语法

kubectl get (-f FILENAME | TYPE  NAME | TYPE/NAME | TYPE -l label ) [--watch] [--sort-by=FIELD] [[-o | --output]=OUTPUT_FORMAT] [flags]

列出一个或多个资源。

3.2、案例:列出所有pod


kubectl -n kube-system  get pods

在这里插入图片描述

3.3、案例:列出所有pod,并包含附加信息(如节点名)

kubectl -n kube-system get pods -o wide

在这里插入图片描述

3.4、案例:列出具有指定名称的副本控制器类型 的pod

你可以使用别名 'rc’替换 ‘replicationcontroller’ 类型的资源。

 
# 列出 replicationcontroller 类型的资源
kubectl get replicationcontroller <rc-name>

3.5、案例:列出所有 副本控制器和服务类型 的pod


kubectl  get rc,services

在这里插入图片描述

3.6、案例:列出所有 守护程序集类型 的pod

kubectl -n kube-system get ds

在这里插入图片描述

3.7、案例:列出 节点master1 上运行的所有 pod

kubectl -n kube-system get pods --field-selector=spec.nodeName=master1

在这里插入图片描述

4、delete

4.1、语法

kubectl delete (-f FILENAME | TYPE  NAME | TYPE/NAME | -l label | --all]) [flags]

 

从文件、标准输入或指定标签选择器、名称、资源选择器或资源中删除资源。

4.2、案例:使用 指定文件 删除资源

使用kubernetes-dashboard.yaml  文件中指定的类型和名称删除 pod。
kubectl delete -f /root/k8s/kubernetes-dashboard.yaml 

在这里插入图片描述

4.3、案例:使用 标签名 删除资源

# 可以通过describe获取标签
# 删除标签名= <label-name> 的所有pod 和服务。
kubectl -n kube-system  delete pods,services -l name=<label-name>

4.4、案例:使用 标签名 删除pod,包括未初始化的 pod

# 删除所有具有标签名称= <label-name> 的 pod 和服务,包括未初始化的那些。
kubectl delete pods,services -l name=<label-name> --include-uninitialized

4.5、案例:删除所有 pod,包括未初始化的 pod

kubectl  -n kube-system   delete pods --all

在这里插入图片描述

5、describe

5.1、语法

kubectl describe (-f FILENAME | TYPE  NAME_PREFIX | TYPE/NAME | TYPE -l label ) [flags]

显示一个或多个资源的详细状态,默认情况下包括未初始化的资源。

5.2、案例:显示 节点的详细信息

 
kubectl describe nodes <node-name>

显示 master1 节点的详细信息 
kubectl describe nodes master1

在这里插入图片描述

5.3、案例:显示pod名称为 podName 的详细信息。

kubectl -n kube-system  describe pod  podName

显示pod名称为  etcd-master1 的详细信息。
kubectl -n kube-system  describe pod  etcd-master1
 

在这里插入图片描述

5.4、案例:显示由名为 的副本控制器管理的所有 pod 的详细信息

 
# 记住:副本控制器创建的任何 pod 都以复制控制器的名称为前缀。
kubectl describe pods <rc-name>

5.5、案例:显示所有的 pod的详细信息

内容非常多,我只截了一点点

kubectl -n kube-system describe pods

在这里插入图片描述

6、edit

6.1、语法

kubectl edit (-f FILENAME | TYPE NAME | TYPE/NAME) [flags]
  1. 编辑和更新服务器上一个或多个资源的定义
  2. 编辑后就生效

6.2、案例:编辑某个pod的定义

# 编辑 pod中,名称为etcd-master1的定义
kubectl -n  kube-system edit pod etcd-master1

在这里插入图片描述

7、exec

7.1、语法

kubectl exec pod-name [-c CONTAINER-name] [-i] [-t] [flags] [-- COMMAND [args...]]

对pod中的容器执行命令。

7.2、案例: 进入名称为etcd-master1的pod,执行date命令

进入名称为etcd-master1的pod,执行date命令

kubectl -n  kube-system exec etcd-master1 -- date

在这里插入图片描述

7.3、案例: 进入容器,执行date命令

进入名称为etcd-master1的pod,名称为etcd的容器,执行date命令

kubectl -n  kube-system exec etcd-master1 -c etcd -- date

在这里插入图片描述

7.4、案例: 进入POD

kubectl -n  kube-system exec  -it etcd-master1 -- /bin/sh

在这里插入图片描述

8、logs

8.1、语法

kubectl logs POD [-c CONTAINER] [--follow] [flags]

在pod中打印容器的日志。

8.2、案例:打印日志

 
kubectl logs <pod-name>

# 打印etcd-master1中容器的日志
kubectl -n  kube-system logs etcd-master1  

在这里插入图片描述

8.3、案例:打印日志

类似于 ‘tail -f’ 命令

kubectl logs -f <pod-name>


# 打印etcd-master1中容器的日志
kubectl -n  kube-system logs -f etcd-master1  

在这里插入图片描述

9、explain

9.1、语法

kubectl explain [--recursive=false] [flags]
  1. 获取多种资源的文档。例如pod, node, service 等
  2. 相当于帮助命令,告诉我们怎么创建资源

9.2、案例:获取pod的文档

kubectl explain pod

在这里插入图片描述

10、expose

10.1、语法

kubectl expose (-f FILENAME | TYPE NAME | TYPE/NAME) [--port=port] [--protocol=TCP|UDP] [--target-port=number-or-name] [--name=name] [--external-ip=external-ip-of-service] [--type=type] [flags]
  1. 将一个资源(replication controller、service、deployment和pod)作为新的K8s服务。
  2. expose按名称查找deployment、service、RS、RC或pod,并将该资源的选择器用作指定端口上新服务的选择器。
  3. 只有当选择器仅包含matchLabels组件时,才会暴露为服务。

10.2、案例

kubectl expose rc nginx --port=80 --target-port=8000
 


  1. port表示Service暴露在Cluster IP上的端口,提供给集群内部访问的Service的入口
  2. targetPort是Pod上的端口,数据从port或者nodePort流入,经过kube-proxy最后到Pod的targetPort上进入容器。

11、run

11.1、语法

kubectl run NAME --image=image [--env="key=value"] [--port=port] [--dry-run=server | client | none] [--overrides=inline-json] [flags]

在集群上运行指定的镜像

11.2、案例:启动nginx实例

启动nginx实例
kubectl run nginx --image=nginx

因为我命令里面没有指定空间,所以是在默认空间
在这里插入图片描述

12、autoscale

12.1、语法

kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min=MINPODS] --max=MAXPODS [--cpu-percent=CPU] [flags]

自动调整deployment、rs或者rc的副本数量

12.2、案例:使用默认的自动伸缩策略,指定目标CPU使用率,使其Pod数量在2到10之间。

# 使用 Deployment "foo"设定,使用默认的自动伸缩策略,指定目标CPU使用率,使其Pod数量在2到10之间


kubectl autoscale deployment foo --min=2 --max=10

12.3、案例:使用默认的自动伸缩策略,使其Pod的数量介于1和5之间,CPU使用率维持在80%。

kubectl autoscale rc foo --max=5 --cpu-percent=80

13、用户角色绑定


kubectl create rolebinding lucky-admin-rolebinding -n lucky --clusterrole=cluster-admin --serviceaccount=lucky:lucky-admin

  1. 在lucky名称空间下创建一个rolebinding,名字叫做lucky-admin-rolebinding
  2. 将lucky名称空间下的lucky-admin账号通过clusterrole绑定集群角色cluster-admin,这样lucky-admin账号就有了cluster-admin角色的权限。
  3. lucky-admin账号的权限只能限制在lucky名称空间下

14、切换账号

# 切换账号到 集群用户,有任何权限(因为后面操作需要这个用户权限)
kubectl config use-context kubernetes-admin@kubernetes 

15、创建 monitor-sa 名称空间

kubectl create ns monitor-sa

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值