首页 > 其他分享 >k8s常用指令续:

k8s常用指令续:

时间:2024-09-15 09:49:55浏览次数:13  
标签:kubectl 常用 -- 指令 master pod k8s root

3. 命名空间

[root@k8s-master pods]# kubectl create namespace abc        //创建命名空间
namespace/abc created
[root@k8s-master pods]# kubectl get namespaces                //查看命名空间
NAME                   STATUS   AGE
abc                    Active   24s
default                Active   10h
kube-node-lease        Active   10h
kube-public            Active   10h
kube-system            Active   10h
kubernetes-dashboard   Active   9h
[root@k8s-master pods]# kubectl create -f abc.json --namespace abc      //使用文件创建pod并指定命名空间
pod/busybox-sleep000 created
或者在文件中指定,必须先在外面创建好命名空间才可以
[root@k8s-master pods]# vim abc.yaml 
apiVersion: v1
kind: Pod
metadata:
  name: busybox-sleep
  namespace: abc
spec:
  containers:
  - name: busybox
    image: busybox:1.28
    args:
    - sleep
    - "1000"
[root@k8s-master pods]# kubectl create -f abc.yaml 
pod/busybox-sleep created
[root@k8s-master pods]# kubectl delete namespaces abc   //删除命名空间,同时也会删除命名空间下的pod
namespace "abc" deleted

4. kubectl delete 

kubernetes 集群中,可通过指定配置文件(json/yaml)、stdin(标准输入)、资源名称或 label(标签)来删除资源。
Pod 支持平滑删除,因为这些资源一般是集群中的实体,所以删除无法立即生效,这些资源在强制终止之前默认定义了一个周期 (宽限期),但可以使用“-graceperiod flag”来覆盖该值,或通过“pass --now”设置该周期为 1.
如果托管 Pod 的 Node 节点已停止或无法连接 APIServer,使用 delete 删除 Pod 需等待时间更长,此时要
想强制删除,需指定“-force flag”,且设置周期为 0。
注意:执行delete命令时不会检查资源版本,如果在执行delete操作时有人进行了更新操作,那么更新操作将连同资源一起被删除。

语法
kubectl delete ([ -f 文件名 ] | TYPE [NAME | -l label | --all])

# 使⽤ pod.json中指定的资源类型和名称删除pod
kubectl delete -f ./pod.json

# 根据传⼊stdin的JSON所指定的类型和名称删除pod
cat pod.json | kubectl delete -f -

# 删除名为“baz”和“foo”的Pod和Service
kubectl delete pod,service baz foo

# 删除 Label name = myLabel的pod和Service
kubectl delete pods,services -l name=myLabel

# 强制删除dead node上的pod
kubectl delete pod foo --grace-period=0 --force

# 删除所有pod
kubectl delete pods --all

# 删除⼀个部署集
kubectl delete deployments nginx

5. kubectl get

语法:
kubectl get resource_name(资源名、类型)

常见 resource_name:

子命令                                        解释
all                                        获取 kubernetes 集群下所有资源,一般显示kubernetes 自身的                                          服务
certificatesigningrequests                    (缩写 csr) 获取集群中的证书签名请求
clusterrolebindings                        获取控制 API Server 访问的绑定角色
clusterrol                                 获取集群级别的权限操作
componentstatuses                        (缩写 cs) 查看 master 及组件状态
configmaps                                 (缩写 cm) 查看存储非机密数据的 kubernetes 资源,如配置信息  等
controllerrevisions                        查看用于跟踪 controller历史版本的资源
cronjobs                                    查看 kubernetes 集群的周期性任务
customresourcedefinition                    (缩写 crd) 查看集群中所有 CRD 的列表,包括它们的名称、API                                         版本、类型、标签和描述等信息
daemonsets                                (缩写 ds) 查看kubernetes 守护进程状态
deployments                                (缩写 deploy) 获取Kubernetes 集群中所有的 Deployment 资                                        源,用于声明式地管理应用程序的副本数量和配置的资源
endpoints                                (缩写 ep) 获取Kubernetes 服务的端点,包含了访问服务的 IP地                                        址和端口信息
events                                    (缩写 ev) 获取集群中默认命名空间的相关操作的事件列表,包括                                        增删改查等
horizontalpodautoscalers                    (缩写 hpa) 获取集群中所有的HorizontalPodAutoscaler资源:用于自动调整 Pod的副本数量以响应集群中的资源使用情况
ingresses                                (缩写 ing) 获取集群中所有的 Ingress 资源:用于定义如何将外                                        部流量路由到集群内部的应用程序
jobs                                        查看用于执行批处理任务或短生命周期的任务
limitranges                                (缩写 limits) 获取集群中所有的 LimitRange 资源:用于定义                                        Pod 的资源限制范围
namespaces                                (缩写 ns) 获取集群中已有的命名空间列表
networkpolicies                            (缩写 netpol) 获取定义网络流量访问规则的资源
nodes                                    (缩写 no) 查看集群中所有节点
persistentvolumeclaims                    (缩写 pvc) 查看集群中用于申请持久卷的资源
persistentvolumes                        (缩写 pv) 查看集群中用于数据持久化的存储卷
poddisruptionbudgets                    (缩写 pdb) 获取该资源以查看限制集群中某个 Pod集合并发的删 除操作
podpreset                                获取用于在创建 Pod 时注入其他运行时需要的信息,这些信息包                                        括secrets、volumemounts、environmentvariables 等
pods                                    (缩写 po) 获取 pod 资源信息,不加参数获取的是当前默认命名                                        空间的资源
podsecuritypolicies                        (缩写 psp) 查看用于控制Pod 的安全相关配置
podtemplates                            查看用于定义 pod 模板的资源对象
replicasets                                (缩写 rs) 查看目前所有的replica set,显示了所有的pod的副本                                        数,以及他们的可用数量以及状态等信息
replicationcontrollers                        (缩写 rc) 列出所有ReplicationControllers 的命令,                                                ReplicationControllers 负责确保特定数量的 Pods始终在运行
resourcequotas                            (缩写 quota) 列出所有ResourceQuotas,ResourceQuota 是                                        一个资源限制对象,用于限制命名空间中资源的使用量
rolebindings                                RoleBinding 通过已经定义的 Role 权限授予到用户、用户组,                                        从而让用户获得在 NameSpace 对应的操作资源权限
roles                                    列出用于限制资源访问的权限对象
secrets                                    列出 Secrets 用于存储敏感信息,例如密码、令牌或 SSH 密钥
serviceaccounts                            (缩写 sa) 显示 service 的敏感信息数量及年龄(服务生成时间)
services                                    (缩写 svc) 列出所有services 的名称、类型、IP、端口、年龄
statefulsets                                (缩写 sts) 列出所有可用StatefulSet 对象,包括其名称、状态和                                        任何相关的标签和注释
storageclasses                            (缩写 sc) 列出所有可用的StorageClass 对象,包括其名称、提                                        供程序、回收策略、卷绑定模式、是否允许卷扩展等信息

其他可选参数:
-o wide/json/yaml                         (用不同格式查看)
-l key=value                                 (看指定标签的pods,⽀持‘=’, ‘==’,and ‘!=’操作符)

示例:
[root@master k8s]# kubectl get componentstatuses               //查看Master状态

[root@master k8s]# kubectl get namespaces                           //查看所有命名空间

[root@master k8s]# kubectl get pods -n kube-system         # 列出kube-system命名空间下的所有pod,不加-n参数查看default命名空间下的pod

[root@master k8s]# kubectl get pods -o wide          # 显示更多的pods列表信息(例如 pod的ip和所处的node)

[root@master k8s]# kubectl get replicationcontroller web            # 列出名字为web的rc

[root@master k8s]# kubectl get -o json pod nginx-7854ff8877-nphcf           # 获取名字为nginx-7854ff8877-nphcf的pod的信息,并以json格式输出

[root@master k8s]# kubectl get -f busybox.yaml -o json         # 根据pod⽂件查找pod,并以json格式输出,查询前确保目标pod存在于集群中

[root@master k8s]# kubectl get -o template pod/kube-dns-795f5f6f9c-ldxxs --template {{.status.phase}}
# 获取pod的kube-dns-795f5f6f9c-ldxxs容器的状态

[root@master k8s]# kubectl get rc,services                   # 同时获取所有的rc和service

[root@master k8s]# kubectl get rc/web service/frontend pods/web-pod-13je7       # 获取符合条件的所有rc,svc,pod,因为当前集群中没有这些资源,所以查不到便报错

[root@master k8s]# kubectl get all         # 显示所有资源,包括pod、deployment、service、replicaset

[root@master k8s]# kubectl get pods nginx-7854ff8877-nphcf -o jsonpath='{.spec.containers[*].name}'
# 查看pod⾥的容器名


6. kubectl set

更新资源:

# 更新 "nginx" Deployment 的 "nginx" 容器镜像
kubectl set image deployment nginx nginx=nginx:v2

7. kubectl edit

编辑资源:

# 编辑名为nginx的集群管理器,进入一个如vim的文本编辑器,但不能使用鼠标滚轮滑动
kubectl edit deployment nginx

8. kubectl replace

更新资源:

# 强制替换,删除后重建资源。会导致服务不可⽤。
kubectl replace --force -f ./nginx.yaml

9. kubectl logs

输出 pod 中一个容器的日志。如果 pod 只包含一个容器则省略容器名。

语法:
kubectl logs [-f] [-p] POD [-c CONTAINER]

-c,--container="":        容器名。
-f,--follow[=false]:        指定是否持续输出日志
--interactive[=true]:        如果为true,当需要时提示用户进行输入。默认为true。
--limit-bytes=0:            输出日志的最大字节数。默认无限制。
-p,--previous[=false]:        如果为true,输出pod中曾经运行过,但目前已终止的容器的日志
--since=0:                 仅返回相对时间范围,如5s、2m或3h,之内的日志。默认返回所有日志。只能司时                        使用since和since-time中的一种。
--since-time="”:        仅返回指定时间 (RFC3339格式)之后的日志。默认返回所有日志。只能同时使用since                        和since-time中的一种。
--tail=-1:                 要显示的最新的日志条数。默认为-1,显示所有的日志。
--timestamps[=false]:         在日志中包含时间戳。

示例:
# 返回仅包含⼀个容器的pod nginx的⽇志快照
kubectl logs nginx

# 持续输出pod⽇志
kubectl logs -f nginx-7854ff8877-x8v6f

# 指定命名空间和pod查看⽇志
kubectl logs -f kube-apiserver-k8s-master -n kube-system

# 查看后⾯10⾏内容
kubectl logs -f kube-apiserver-k8s-master -n kube-system --tail 10

# 查看某个pod⾥某个容器的⽇志
kubectl logs -f nginx-7854ff8877-x8v6f -c nginx

10. kubectl exec

连接容器并可在容器内部执行命令

语法:
kubectl exec POD [-c CONTAINER] -- COMMAND [args...]

-c,--container="”:         容器名。如果未指定,使用pod中的一个容器。
-p,--pod="”:             Pod名
-i,--stdin[=false]:             将控制台输入发送到容器
-t,--tty[=false]:             为容器分配一个伪终端

示例:
# 在pod的容器⾥执⾏ls指令
kubectl exec busybox-sleep -- ls

# 进⼊到pod容器⾥
kubectl exec -it busybox-sleep -- bash
kubectl exec -it busybox-sleep -- sh

# 进⼊到某个pod⾥的某个容器⾥
kubectl exec -it nginx-7854ff8877-x8v6f -c nginx -- bash

11. kubectl top

显示资源 cpu 内存 存储使⽤情况

# 查看节点的资源使⽤情况
kubectl top node

# 查看pod资源使⽤情况
kubectl top po

# 查看所有节点资源使⽤情况
kubectl top po -A
 

实例:

[root@k8s-master pods]# vim 0001pod.yaml 
apiVersion: v1
kind: Pod
metadata:
  labels:
    run: nginx
  name: nginx0001
  namespace: pes
spec:
  containers:
    - name: nginx0001
      image: nginx
      ports:
      - name: nginxport
        containerPort: 80
[root@k8s-master pods]# kubectl create namespace pes
namespace/pes created
[root@k8s-master pods]# kubectl create -f 0001pod.yaml 
pod/nginx0001 created
[root@k8s-master pods]# kubectl get pod -n pes
NAME        READY   STATUS    RESTARTS   AGE
nginx0001   1/1     Running   0          114s

标签:kubectl,常用,--,指令,master,pod,k8s,root
From: https://blog.csdn.net/m0_70848838/article/details/142216396

相关文章

  • 声波的波数,通常用k表示
    声波的波数(通常用k表示)是描述声波空间变化的一个参数,它与声波的频率和介质中的传播速度有关。波数k 是一个具体值,并且在均匀介质中它是固定的,计算公式如下:均匀介质中的波数是一个具体值,对于某个频率的声波,波数k 只取决于该声波的频率f和介质中的声速c。例如,在空气......
  • PyCharm修改背景颜色、修改字体大小+Python常用快捷键+Python常见的运算符
    文章目录PyCharm软件的使用1.修改背景颜色和字体大小1.1修改背景颜色1.2修改字体大小2.常用的快捷键3.常见的运算符3.1算术运算符3.2赋值运算符3.3比较运算符3.4逻辑运算符PyCharm软件的使用1.修改背景颜色和字体大小1.1修改背景颜色1.2修改字体大......
  • 基础python超级常用的四种可视化函数库
    可视化的概念可视化是指将数据或信息转换为图形表示形式的过程,以便更容易理解和分析。通过可视化,可以将复杂的概念、大量数据或抽象信息转化为直观的图形,使人们能够更快地洞察数据中的模式、趋势和异常情况。数据可视化是数据科学、统计学、信息设计等多个领域的交叉学科,它不......
  • 常用的ADB命令
    ADB(AndroidDebugBridge)是一种功能强大的命令行工具,用于与Android设备进行通信和调试,这里来总结一下常用的ADB命令:一、常用的命令1.连接与设备管理adbdevices列出已连接的设备及其状态。adbconnect<IP地址>:<端口号>通过网络连接设备,适用于无线调试。adbdiscon......
  • 章13——常用类——包装类,Integer类
    包装类ctrl+b可以跳转源代码。char和boolean的继承体系:包装类和基本数据的转换//装箱intn=200;Integerinteger=n;//拆箱intn1=integer;包装类练习题三元运算符中是一个整体,其中精度最高的是double,所以无......
  • 信息学奥赛初赛天天练-89-CSP-S2023基础题1-linux常用命令、完全平方数、稀疏图、队列
    PDF文档公众号回复关键字:202409142023CSP-S选择题单项选择题(共15题,每题2分,共计30分:每题有且仅有一个正确选项)1在Linux系统终端中,以下哪个命令用于创建一个新的目录?()AnewdirBmkdirCcreateDmkfold2从0,1,2,3,4中选取4个数字,能组成(......
  • 笔试常用api
    常用apiArrayList:List接口publicbooleanadd(Ee):将指定的元素添加到此集合的尾部。publicbooleanaddAll(collection对象):将collection的对象加入到publicEremove(intindex):移除此集合中指定位置上的元素。返回被删除的元素。publicEget(intindex):返回此集......
  • K8S怎么删除一个Node节点
    驱逐Pod本次node为172.16.5.103#kubectldrain172.16.5.103--force--ignore-daemonsets--delete-local-data使用参数--delete-local-data删除本地挂载数据查看该节点无法调度删除node#kubectldeletenode172.16.5.103重新设置为可调度#kubectluncordon172.16.5.103......
  • 天梯赛(常用STL函数)+ 常见算法
    0.(森森美图)判断一个点x3,y3在一条直线(由x1,y1和x2,y2组成)的哪一边若(y2-y3)/(x2-x3)-(y1-y3)/(x1-x3)>0逆时针方向否则顺时针方向1.vectorvector<node>ve;//定义ve.insert(ve.begin()+i,k);//中间插入ve.insert(ve.begin()+i,num,key);ve.erase(ve.begin()+i);//删......
  • k8s面试总结
    k8s是一个Google开源的的容器编排工具。k8s能够实现弹性伸缩、负载均衡、版本回退等功能。一个kubernetes集群主要是由控制节点(master)、工作节点(node)构成,每个节点上都会安装不同的组件。下面,以部署一个nginx服务来说明kubernetes系统各个组件调用关系:首先要明确,一旦kub......