当前位置: 首页 > news >正文

k8s常用指令续:

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 避免死锁发生的策略
  • 240919-Pip先在线下载不安装+再离线安装
  • AI助力智慧农田作物病虫害监测,基于YOLOv8全系列【n/s/m/l/x】参数模型开发构建花田作物种植场景下棉花作物常见病虫害检测识别系统
  • 一道涉及 Go 中的并发安全和数据竞态(Race Condition)控制的难题
  • 【Kubernetes】常见面试题汇总(十八)
  • 对目录的操作、获取文件信息
  • [PTA]7-6 整数分解为若干项之和
  • 【conda】macOS how to install conda?
  • 【Vue】VueRouter路由
  • Oracle 19c 安装教程学习
  • AV1 Bitstream Decoding Process Specification--[4]:语法结构
  • monaco editor 在react中的使用
  • 设计模式——对象池模式
  • pg入门3—详解tablespaces2
  • Pandas中DataFrame表格型数据结构
  • 《Java编程思想》读书笔记-对象导论
  • 【5+】跨webview多页面 触发事件(二)
  • CSS 专业技巧
  • eclipse(luna)创建web工程
  • Java Agent 学习笔记
  • java概述
  • JS笔记四:作用域、变量(函数)提升
  • MYSQL如何对数据进行自动化升级--以如果某数据表存在并且某字段不存在时则执行更新操作为例...
  • SAP云平台里Global Account和Sub Account的关系
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • VuePress 静态网站生成
  • 分类模型——Logistics Regression
  • 利用jquery编写加法运算验证码
  • 如何抓住下一波零售风口?看RPA玩转零售自动化
  • 双管齐下,VMware的容器新战略
  • 为视图添加丝滑的水波纹
  • 译有关态射的一切
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • 带你开发类似Pokemon Go的AR游戏
  • ​MySQL主从复制一致性检测
  • ​猴子吃桃问题:每天都吃了前一天剩下的一半多一个。
  • ### RabbitMQ五种工作模式:
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • $().each和$.each的区别
  • (1)svelte 教程:hello world
  • (pytorch进阶之路)CLIP模型 实现图像多模态检索任务
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (转)程序员技术练级攻略
  • (自适应手机端)响应式服装服饰外贸企业网站模板
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • ./和../以及/和~之间的区别
  • .[hudsonL@cock.li].mkp勒索加密数据库完美恢复---惜分飞
  • .NET C# 使用 iText 生成PDF
  • .net core使用ef 6
  • .NetCore项目nginx发布
  • .one4-V-XXXXXXXX勒索病毒数据怎么处理|数据解密恢复
  • [001-03-007].第07节:Redis中的管道