k8s常用命令

这篇具有很好参考价值的文章主要介绍了k8s常用命令。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、namespace

1.查看所有namespace

2.查看指定的namespace

3.查看namespace并指定输出格式

4.查看namespace详情

5.创建namespace

6.删除namespace

7.通过yaml文件创建、删除namespace

二、pod

1.创建并运行pod

2.查看pod信息

3.查看pod详情

4.获取pod IP

5.删除指定pod

6.查看pod资源配置项

7.设置pod镜像拉取策略

8.设置污点

9.去除污点

10.去除所有污点

三、label

1.给pod资源打标签

2.更新pod标签

3.查看pod标签

4.筛选标签

5.删除标签

四、控制器

1.创建deployment

2.查看deployment信息

3.查看deployment详情

4.删除deployment

5.创建replicaSet

6.查看replicaSet

7.编辑rs副本数量

8.rs镜像升级

9.删除replicaSet,不保留pod

10.删除replicaSet,保留pod(不推荐)

11.通过yaml文件删除replicaset

12.deploy更改副本数量

13.deployment镜像变更

14.查看deployment当前升级版本状态

15.查看deployment历史升级记录

16.deployment版本回退

17.继续已暂停的版本升级过程

18.通过yaml文件删除deployment

五、service


一、namespace

1.查看所有namespace

  • kubectl get ns

2.查看指定的namespace

  • kubectl get ns ns名称

3.查看namespace并指定输出格式

  • kubectl get ns ns名称 -o 格式参数

k8s支持的格式有:wide、json、yaml

4.查看namespace详情

  • kubectl describe ns ns名称

5.创建namespace

  • kubectl create ns namespace名称

6.删除namespace

  • kubectl delete ns namespace名称

7.通过yaml文件创建、删除namespace

ns-dev.yaml文件:

apiVersion: v1
kind: Namespace
metadata:
  name: dev

创建:kubectl create -f ns-dev.yaml

删除:kubectl delete -f ns-dev.yaml

二、pod

查看pod资源清单:

kubectl explain pod.spec.containers

pod资源清单:

apiVersion: v1     #必选,版本号,例如v1
kind: Pod         #必选,资源类型,例如 Pod
metadata:         #必选,元数据
  name: string     #必选,Pod名称
  namespace: string  #Pod所属的命名空间,默认为"default"
  labels:           #自定义标签列表
    - name: string                 
spec:  #必选,Pod中容器的详细定义
  containers:  #必选,Pod中容器列表
  - name: string   #必选,容器名称
    image: string  #必选,容器的镜像名称
    imagePullPolicy: [ Always|Never|IfNotPresent ]  #获取镜像的策略 
    command: [string]   #容器的启动命令列表,如不指定,使用打包时使用的启动命令
    args: [string]      #容器的启动命令参数列表
    workingDir: string  #容器的工作目录
    volumeMounts:       #挂载到容器内部的存储卷配置
    - name: string      #引用pod定义的共享存储卷的名称,需用volumes[]部分定义的的卷名
      mountPath: string #存储卷在容器内mount的绝对路径,应少于512字符
      readOnly: boolean #是否为只读模式
    ports: #需要暴露的端口库号列表
    - name: string        #端口的名称
      containerPort: int  #容器需要监听的端口号
      hostPort: int       #容器所在主机需要监听的端口号,默认与Container相同
      protocol: string    #端口协议,支持TCP和UDP,默认TCP
    env:   #容器运行前需设置的环境变量列表
    - name: string  #环境变量名称
      value: string #环境变量的值
    resources: #资源限制和请求的设置
      limits:  #资源限制的设置
        cpu: string     #Cpu的限制,单位为core数,将用于docker run --cpu-shares参数
        memory: string  #内存限制,单位可以为Mib/Gib,将用于docker run --memory参数
      requests: #资源请求的设置
        cpu: string    #Cpu请求,容器启动的初始可用数量
        memory: string #内存请求,容器启动的初始可用数量
    lifecycle: #生命周期钩子
        postStart: #容器启动后立即执行此钩子,如果执行失败,会根据重启策略进行重启
        preStop: #容器终止前执行此钩子,无论结果如何,容器都会终止
    livenessProbe:  #对Pod内各容器健康检查的设置,当探测无响应几次后将自动重启该容器
      exec:         #对Pod容器内检查方式设置为exec方式
        command: [string]  #exec方式需要制定的命令或脚本
      httpGet:       #对Pod内个容器健康检查方法设置为HttpGet,需要制定Path、port
        path: string
        port: number
        host: string
        scheme: string
        HttpHeaders:
        - name: string
          value: string
      tcpSocket:     #对Pod内个容器健康检查方式设置为tcpSocket方式
         port: number
       initialDelaySeconds: 0       #容器启动完成后首次探测的时间,单位为秒
       timeoutSeconds: 0          #对容器健康检查探测等待响应的超时时间,单位秒,默认1秒
       periodSeconds: 0           #对容器监控检查的定期探测时间设置,单位秒,默认10秒一次
       successThreshold: 0
       failureThreshold: 0
       securityContext:
         privileged: false
  restartPolicy: [Always | Never | OnFailure]  #Pod的重启策略
  nodeName: <string> #设置NodeName表示将该Pod调度到指定到名称的node节点上
  nodeSelector: obeject #设置NodeSelector表示将该Pod调度到包含这个label的node上
  imagePullSecrets: #Pull镜像时使用的secret名称,以key:secretkey格式指定
  - name: string
  hostNetwork: false   #是否使用主机网络模式,默认为false,如果设置为true,表示使用宿主机网络
  volumes:   #在该pod上定义共享存储卷列表
  - name: string    #共享存储卷名称 (volumes类型有很多种)
    emptyDir: {}       #类型为emtyDir的存储卷,与Pod同生命周期的一个临时目录。为空值
    hostPath: string   #类型为hostPath的存储卷,表示挂载Pod所在宿主机的目录
      path: string                #Pod所在宿主机的目录,将被用于同期中mount的目录
    secret:          #类型为secret的存储卷,挂载集群与定义的secret对象到容器内部
      scretname: string  
      items:     
      - key: string
        path: string
    configMap:         #类型为configMap的存储卷,挂载预定义的configMap对象到容器内部
      name: string
      items:
      - key: string
        path: string

1.创建并运行pod

方式一:

  • kubectl run 控制器名称 --image=镜像名称:版本 --port=端口 --namespace namespace名称

方式二:通过yaml文件创建pod:

  • 创建pod:kubectl apply -f pod-base.yaml, pod-base.yaml:
apiVersion: v1    #版本号
kind: Pod    #资源类型
metadata:
  name: Pod名称    #Pod名称
  namespace: 命名空间名称    #Pod所属的命名空间
spec:    #Pod中容器的详细定义
  containers:    #Pod中容器列表
  - name: 容器名
    image: 镜像名:版本
  - name: 容器名
    image: 镜像名:版本

2.查看pod信息

  • kubectl get pod -n 命名空间名称

3.查看pod详情

  • kubectl describe pod pod名称 -n 命名空间名称

4.获取pod IP

  • kubectl get pod -n dev -o wide

5.删除指定pod

方式一:

  • kubectl delete pod pod名称 -n 命名空间名称

方式二,通过yaml文件删除pod:

  • kubectl delete -f pod-nginx.yaml, pod-base.yaml:
apiVersion: v1
kind: Pod
metadata:
  name: pod名称
  namespace: 命名空间
spec:
  containers:
  - image: 镜像名:版本
    name: 容器名
    ports:
    - name: 端口的名称
      containerPort: 容器需要监听的端口号
      protocol: 端口协议,支持TCP和UDP

6.查看pod资源配置项

  • kubectl explain pod

7.设置pod镜像拉取策略

pod-imagepullpolicy.yaml:

apiVersion: v1
kind: Pod
metadata:
  name: pod名称
  namespace: 命名空间
spec:
  containers:
  - name: 容器名
    image: 镜像名:版本
    imagePullPolicy: Never # 用于设置镜像拉取策略

使用kubectl create -f pod-imagepullpolicy.yaml命令即可

8.设置污点

  • kubectl taint nodes node名字 key=value:effect
  • key和value是污点的标签,effect描述污点的作用
  • effect选项:PreferNoSchedule、NoSchedule、NoExecute

9.去除污点

  • kubectl taint nodes node名字 key:effect-

10.去除所有污点

  • kubectl taint nodes node名字key-

三、label

1.给pod资源打标签

  • kubectl label pod nginx-pod 标签key=标签value -n 命名空间

2.更新pod标签

  • kubectl label pod pod名称 标签key=标签value -n 命名空间 --overwrite

3.查看pod标签

  • kubectl get pod pod名称 -n 命名空间 --show-labels

4.筛选标签

  • kubectl get pod -n 命名空间 -l 标签key=标签value --show-labels
  • kubectl get pod -n 命名空间 -l 标签key!=标签value --show-labels

5.删除标签

  • kubectl label pod pod名称 标签key- -n 命名空间

四、控制器

replicaSet资源清单:

apiVersion: apps/v1 # 版本号
kind: ReplicaSet # 类型       
metadata: # 元数据
  name: # rs名称 
  namespace: # 所属命名空间 
  labels: #标签
    controller: rs
spec: # 详情描述
  replicas: 3 # 副本数量
  selector: # 选择器,通过它指定该控制器管理哪些pod
    matchLabels:      # Labels匹配规则
      app: nginx-pod
    matchExpressions: # Expressions匹配规则
      - {key: app, operator: In, values: [nginx-pod]}
  template: # 模板,当副本数量不足时,会根据下面的模板创建pod副本
    metadata:
      labels:
        app: nginx-pod
    spec:
      containers:
      - name: nginx
        image: nginx:1.17.1
        ports:
        - containerPort: 80

deployment资源清单:

apiVersion: apps/v1 # 版本号
kind: Deployment # 类型       
metadata: # 元数据
  name: # rs名称 
  namespace: # 所属命名空间 
  labels: #标签
    controller: deploy
spec: # 详情描述
  replicas: 3 # 副本数量
  revisionHistoryLimit: 3 # 保留历史版本
  paused: false # 暂停部署,默认是false
  progressDeadlineSeconds: 600 # 部署超时时间(s),默认是600
  strategy: # 策略
    type: RollingUpdate # 滚动更新策略,可选Recreate重建更新
    rollingUpdate: # 滚动更新
      maxSurge: 30% # 最大额外可以存在的副本数,可以为百分比,也可以为整数
      maxUnavailable: 30% # 最大不可用状态的 Pod 的最大值,可以为百分比,也可以为整数
  selector: # 选择器,通过它指定该控制器管理哪些pod
    matchLabels:      # Labels匹配规则
      app: nginx-pod
    matchExpressions: # Expressions匹配规则
      - {key: app, operator: In, values: [nginx-pod]}
  template: # 模板,当副本数量不足时,会根据下面的模板创建pod副本
    metadata:
      labels:
        app: nginx-pod
    spec:
      containers:
      - name: nginx
        image: nginx:1.17.1
        ports:
        - containerPort: 80

1.创建deployment

方式一:

  • kubectl create deployment名称 --image=镜像名:版本 --port=端口号 --replicas=要创建的pod数量 -n 命名空间

方式二:

  • kubectl create -f deploy-demo.yaml

deploy-demo.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: deploy名称
  namespace: 命名空间名称
spec:
  replicas: 3    #pod数量
  selector:    #选择器,通过它指定该控制器管理哪些pod
    matchLabels: #标签匹配规则
      run: nginx
  template:
    metadata:
      labels:
        run: nginx
    spec:
      containers:
      - image: nginx:latest
        name: nginx
        ports:
        - containerPort: 80
          protocol: TCP

2.查看deployment信息

  • kubectl get deploy -n 命名空间 -o wide

3.查看deployment详情

  • kubectl describe deploy deployment名称 -n dev

4.删除deployment

  • kubectl delete deploy deploy名称 -n 命名空间

5.创建replicaSet

pc-replicaset.yaml文件:

apiVersion: apps/v1
kind: ReplicaSet   
metadata:
  name: pc-replicaset
  namespace: dev
spec:
  replicas: 3
  selector: 
    matchLabels:
      app: nginx-pod
  template:
    metadata:
      labels:
        app: nginx-pod
    spec:
      containers:
      - name: nginx
        image: nginx:1.17.1
  • kubectl create -f pc-replicaset.yaml

6.查看replicaSet

  • kubectl get rs rs名字 -n 命名空间名称 -o wide

7.编辑rs副本数量

方式一:

  • kubectl edit rs rs名称 -n 命名空间名称,然后修改yaml文件中replicas数量即可

方式二:

  • kubectl scale rs rs名称 --replicas=副本数量 -n 命名空间名称

8.rs镜像升级

方式一:

  • kubectl edit rs rs名称 -n 命名空间名称,然后修改yaml文件中image即可

方式二:

  • kubectl set image rs rs名称 容器=镜像名:镜像版本 -n 命名空间名称

9.删除replicaSet,不保留pod

  • kubectl delete rs rs名称 -n 命名空间

10.删除replicaSet,保留pod(不推荐)

  • kubectl delete rs rs名称 -n 命名空间名称 --cascade=false

11.通过yaml文件删除replicaset

  • kubectl delete -f pc-replicaset.yaml

12.deploy更改副本数量

方式一:

  • kubectl scale deploy deploy名称 --replicas=副本数量 -n 命名空间名称

方式二:

  • kubectl edit deploy deploy名称 -n 命名空间,然后直接修改yaml文件中replicas数量即可

13.deployment镜像变更

  • kubectl set image deploy deploy名称 容器=镜像名:版本 -n 命名空间名称

14.查看deployment当前升级版本状态

  • kubectl rollout status deploy deploy名称 -n 命名空间名称

15.查看deployment历史升级记录

  • kubectl rollout history deploy deploy名称 -n 命名空间名称

16.deployment版本回退

  • kubectl rollout undo deploy deploy名称 --to-revision=回退版本 -n 命名空间名称

忽略 --to-revision选项就是回退到上个版本,历史版本通过第15条命令查看。

17.继续已暂停的版本升级过程

  • kubectl rollout resume deploy deploy名称 -n 命名空间名称

18.通过yaml文件删除deployment

  • kubectl delete -f deploy-demo.yaml

deploy-demo.yaml在第一条命令中

五、service

service资源清单:文章来源地址https://www.toymoban.com/news/detail-741853.html

kind: Service  # 资源类型
apiVersion: v1  # 资源版本
metadata: # 元数据
  name: service # 资源名称
  namespace: dev # 命名空间
spec: # 描述
  selector: # 标签选择器,用于确定当前service代理哪些pod
    app: nginx
  type: # Service类型,指定service的访问方式
  clusterIP:  # 虚拟服务的ip地址
  sessionAffinity: # session亲和性,支持ClientIP、None两个选项
  ports: # 端口信息
    - protocol: TCP 
      port: 3017  # service端口
      targetPort: 5003 # pod端口
      nodePort: 31122 # 主机端口

到了这里,关于k8s常用命令的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • yum部署kubernetes(k8s)集群、k8s常用资源管理

    目录 一、环境搭建 1、准备环境 1)计算机说明,建议系统版本7.4或者7.6 2)修改所有主机的计算机名设置host文件  2、安装master节点 1)安装etcd配置etcd 2)安装k8s-master节点 3)配置apiserver 4)配置controller和scheduler 5)启动k8s服务 3、安装k8s-master上的node 1)安装node 2)配置kube

    2024年02月13日
    浏览(61)
  • Kubernetes(K8S)命令指南

    本文提供了一份全面的Kubernetes(K8S)命令指南,旨在帮助用户掌握和运用K8S的各种命令。 关注【TechLeadCloud】,分享互联网架构、云服务技术的全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云

    2024年04月08日
    浏览(78)
  • (kubernetes)k8s常用资源管理

    目录 k8s常用资源管理 1、创建一个pod 1)创建yuml文件 2)创建容器 3)查看所有pod创建运行状态 4)查看指定pod资源 5)查看pod运行的详细信息 6)验证运行的pod 2、pod管理 1)删除pod 2)查看删除pod无法找到 3)创建pod 4)发现最先创建的pod运行在k8s-master节点上,下载镜像速度太

    2024年02月13日
    浏览(46)
  • 云原生Kubernetes:K8S常用服务端口

    目录 一、理论 1.K8S常用服务端口号 (1)K8S集群 表1 K8S集群端口 协议 端口号 K8S集群 TCP 22 使用主机驱动通过SSH进行节点配置 TCP 53 集群DNS服务 UDP 53 集群DNS服务 TCP 2376 主机驱动与Docker守护进程通信的TLS端口 TCP 2379 etcd客户端请求 TCP 2380 etcd节点通信 UDP 8472 Canal/Flannel VXLAN ove

    2024年02月10日
    浏览(67)
  • 【k8s】Kubernetes技术和相关命令简介

    Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。kubernetes,简称K8s,是用8代替8个字符“ubernete”而成的缩写。 在Kubernetes中,我们

    2024年01月18日
    浏览(44)
  • K8s:K8s 20个常用命令汇总

    博文内容为节译整理,用于温习 理解不足小伙伴帮忙指正 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是随波逐流,是对内心的恐惧 ——赫尔曼·

    2024年02月15日
    浏览(54)
  • Kubernetes(k8s):精通 Pod 操作的关键命令

    💖The Begin💖点点关注,收藏不迷路💖 Kubernetes 是一个强大的容器编排平台,其中的核心概念之一就是 Pod。Pod 是 Kubernetes 中最小的可部署单元,它由一个或多个容器组成,共享网络和存储资源。 在本篇博客中,我们将深入探讨 Kubernetes 集群中与 Pod 相关的一些重要命令,帮

    2024年04月14日
    浏览(152)
  • 【k8s】Kubernetes 声明式 API、命令式

    1. 命令式对象管理∶直接使用命令去操作kubernetes资源 2. 命令式对象配置∶通过命令配置和配置文件去操作kubernetes资源 3. 声明式对象配置∶通过apply命令和配置文件去操作kubemetes资源 kubectl命令:kubectl是kubernetes集群的命令行工具,通过它能够对集群本身进行管理,并能够在集

    2024年01月17日
    浏览(44)
  • K8s 详解(一) K8s 架构和常用命令

    🎈 作者: Linux猿 🎈 简介: CSDN博客专家🏆,华为云享专家🏆,Linux、C/C++、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊! 🎈 欢迎小伙伴们点赞👍、收藏⭐、留言💬 本文主要介绍 K8s 的简介、架构以及常用命令。 Kubernetes ( 简称为 K8s )最开始

    2024年02月15日
    浏览(39)
  • k8s常用命令

    目录 一、namespace 1.查看所有namespace 2.查看指定的namespace 3.查看namespace并指定输出格式 4.查看namespace详情 5.创建namespace 6.删除namespace 7.通过yaml文件创建、删除namespace 二、pod 1.创建并运行pod 2.查看pod信息 3.查看pod详情 4.获取pod IP 5.删除指定pod 6.查看pod资源配置项 7.设置pod镜像拉

    2024年02月06日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包