首页 > 其他分享 >kubernetes的kubectl命令介绍

kubernetes的kubectl命令介绍

时间:2024-03-16 23:31:29浏览次数:24  
标签:kubectl NAME Kubernetes -- 命令 flags kubernetes TYPE

前言:

kubectl是Kubernetes命令行工具,用于与Kubernetes集群进行交互。它允许用户执行各种操作,包括管理容器、部署应用程序、查看集群状态等。kubectl是操作k8s集群的命令行工具,安装在k8s的master节点,kubectl在$HOME/.kube目录中查找一个名为config的文件, 你可以通过设置Kubeconfig环境变量或设置–kubeconfig来指定其他的kubeconfig文件。可参考官方文档:https://kubernetes.io/docs/reference/kubectl/kubectl/

kubectl语法

kubectl语法格式如下:

 kubectl [command] [TYPE] [NAME] [flags]

command:指定要对一个或多个资源执行的操作,例如create、get、describe、delete等。

type:指定资源类型。资源类型不区分大小写,可以指定单数、复数或缩写形式。例如pod、svc

NAME:指定资源的名称。名称区分大小写。如果省略名称,则显示所有资源的详细信息:kubectl get pods。

flags: 指定可选的参数。例如,可以使用-s或-server参数指定 Kubernetes API服务器的地址和端口。

一、在对多个资源执行操作时,可以按类型、名称、一个或者多个文件指定每个资源

1.1、按类型和名称指定资源:

要对所有类型相同的资源进行分组,请执行以下操作:TYPE1 name1 name2 name。

 例:kubectl get pod example-pod1 example-pod2

分别指定多个资源类型:TYPE1/name1 TYPE1/name2 TYPE2/name3 TYPE<#>/name<#>。

 例:kubectl get pod/example-pod1 deployment/example-rc1

1.2、用一个或多个文件指定资源:-f file1 -f file2 -f file (yaml文件)

 例:kubectl get pod -f ./pod.yaml

二、kubectl操作相关的命令和语法

2.1、annotate

   语法格式:
    kubectl annotate (-f FILENAME | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 … KEY_N=VAL_N [--overwrite] [--all] [--resource-version=version] [flags]

添加或更新一个或多个资源的注释。

   例如:kubectl describe pod kube-flannel-ds-6wh2p -n kube-flannel

查看flannel查看的信息Annotations: <none>

   修改:kubectl annotate pod kube-flannel-ds-6wh2p description="This is a node01 flannel" -n kube-flannel

再使用kubectl describe pod kube-flannel-ds-6wh2p -n kube-flannel查看资源信息

   Annotations:          description: This is a node01 flannel

2.2、api-versions

命令用于查看 Kubernetes API Server 支持的 API 版本。它会列出所有已安装的 API 组及其版本。

   [root@master .kube]# kubectl api-versions
   admissionregistration.k8s.io/v1
   apiextensions.k8s.io/v1
   apiregistration.k8s.io/v1
   ...
   rbac.authorization.k8s.io/v1
   scheduling.k8s.io/v1
   storage.k8s.io/v1
   v1

yaml文件中应用:

apiVersion: v1
//yaml文件中的apivision
kind: Pod
metadata:
  name: poststart-pod
  namespace: default
spec:
  containers:
  - name: poststart-container
    image: nginx
    imagePullPolicy: IfNotPresent
    lifecycle:
      postStart:
        exec:
          command: ["/bin/bash","-c","echo home >> /usr/share/nginx/html/index.html"]
    ports:
    - name: http
      containerPort: 80

2.3、apply

apply是kubectl命令的一个子命令,用于将配置文件中定义的资源应用到 Kubernetes 集群中。它可以用来创建、更新或删除资源。

  例:kubectl apply -f deployment.yaml

2.4、autoscale

autoscale是Kubernetes的一种特性,用于自动调整部署的副本数量,以满足应用程序的负载需求。通过自动扩展,Kubernetes能够根据配置的指标自动增加或减少 Pod 的副本数量,以保持应用程序的稳定性和可用性。

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

1、目标资源:指定要自动扩展的Deployment、ReplicaSet或者StatefulSet的名称。

2、目标CPU利用率或者其他指标HPA使用Metrics Server收集指标,并根据这些指标自动调整Pod的副本数量。

3、最小和最大副本数:指定在自动扩展过程中允许的最小和最大副本数量。

2.5、cluster-info

cluster-info是kubectl命令的一部分,用于获Kubernetes集群中的主服务器和服务的端点信息,对于连接到Kubernetes集群、管理和监控集群以及进行故障排除都非常有用

  语法格式:kubectl cluster-info [flags]

2.6、config

kubectl config 命令用于管理 Kubernetes 配置文件,允许您管理多个 Kubernetes 集群、用户和上下文,修改kubeconfig文件。

  语法格式:kubectl config SUBCOMMAND [flags]

2.7、delete

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

 语法格式:kubectl delete (-f FILENAME | TYPE [NAME | /NAME | -l label | --all]) [flags]

2.8、describe

用于显示 Kubernetes 资源的详细信息。

 语法格式:kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | /NAME | -l label]) [flags]

2.9、edit

edit是kubectl的一个子命令,用于编辑资源的配置。使用edit命令可以在默认编辑器中打开指定资源的配置文件,并允许您对其进行修改。

 语法格式:kubectl edit (-f FILENAME | TYPE NAME | TYPE/NAME) [flags]

2.10、exec

exec是kubectl的一个子命令,用于在容器内执行命令或进入容器。

 语法格式:kubectl exec POD-name [-c CONTAINER-name] [-i] [-t] [flags] [-- COMMAND [args...]]

exec命令中-c参数指定进入Pod中的某个容器,不加-c默认进入第一个容器。

2.11、explain(重要)

获取多种资源的文档。例如 pod, node, service 等,相当于帮助命令,可以告诉我们怎么创建资源。

 语法格式:kubectl explain RESOURCE_NAME
 例如:[root@master .kube]# kubectl explain pod.spec
 KIND:       Pod
 VERSION:    v1

 FIELD: spec <PodSpec>

 DESCRIPTION:
     Specification of the desired behavior of the pod. More info:
     https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
     PodSpec is a description of a pod.

FIELDS:
     activeDeadlineSeconds	<integer>
     Optional duration in seconds the pod may be active on the node relative to
     StartTime before the system will actively try to mark it failed and kill
...

containers	<[]Container> -required-
    List of containers belonging to the pod. Containers cannot currently be
    added or removed. There must be at least one container in a Pod. Cannot be
    updated.

在书写yaml文件时候需要严谨的缩进格式,这个命令提供了在书写yaml文件时需要关键字段解释。

2.12、expose

expose命令用于创建一个新的Kubernetes服务,并将其公开到集群内部或外部。

 语法格式: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]

 例:kubectl expose deployment nginx-deployment --port=80 --target-port=8080 --name=nginx-service

2.13、get

get命令用于获取Kubernetes集群中的资源对象的详细信息。

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

2.14、label

label命令,它用于为Kubernetes资源对象添加或修改标签。

 语法格式:kubectl label (-f FILENAME | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 … KEY_N=VAL_N [--overwrite] [--all] [--resource-version=version] [flags]

2.15、logs

logs用于查询Pod日志

 语法格式:kubectl logs POD [-c CONTAINER] [--follow] [flags]

2.16、patch

patch是一种用于部分更新资源的操作。使用kubectl patch命令可以修改Kubernetes中的资源的部分属性,而不必重新提交整个资源对象。

 语法格式:kubectl patch (-f FILENAME | TYPE NAME | TYPE/NAME) --patch PATCH [flags]
 例: kubectl patch deployment my-deployment -p '{"spec":{"replicas":3}}'

2.17、port-forward(重要)

port-forward命令用于将本地端口与Kubernetes Pod之间建立端口转发,从而可以直接访问运行在Pod内部的服务。这个命令非常有用,特别是在调试和测试时。

 语法格式:kubectl port-forward POD [LOCAL_PORT:]REMOTE_PORT [...[LOCAL_PORT_N:]REMOTE_PORT_N] [flags]
 例如:要将名为 my-pod 的 Pod 的端口 8080 转发到本地的端口 8888,可以使用以下命令
    kubectl port-forward my-pod 8888:8080

2.18、proxy

kubectl proxy命令用于创建一个代理服务器,允许通过本地主机访问Kubernetes集群中的AP 服务器。通过该代理服务器,您可以在本地访问 Kubernetes API,从而执行一些操作,如查看集群状态、调试应用程序等。

 语法格式:kubectl proxy [--port=PORT] [--www=static-dir] [--www-prefix=prefix] [--api-prefix=prefix] [flags]
 例如,要启动代理服务器,可以使用以下命令:kubectl proxy

默认情况下,代理服务器将在本地主机的8001端口启动。您可以通过访问 http://localhost:8001 来查看 Kubernetes API服务器的信息。通过该代理服务器,您可以执行诸如查看Pod、Service、Deployment 等资源的操作。

2.19、replace

kubectl replace命令用于替换现有资源的配置。它将覆盖现有资源的所有字段,并将其替换为新的配置。如果资源不存在,则会创建新资源。

 语法格式:kubectl replace -f FILENAM

2.20、run

kubectl run命令用于创建新的Deployment、Pod 或 Job 资源。它可以根据提供的参数自动生成相应的资源配置,并将其提交到 Kubernetes集群中。

 语法格式:kubectl run NAME --image=image [--env=“key=value”] [--port=port] [--dry-run=server | client | none] [--overrides=inline-json] [flags]

2.21、scale

kubectl scale命令用于动态调整 Deployment、ReplicaSet 或 StatefulSet 的副本数量。

 语法格式:kubectl scale (-f FILENAME | TYPE NAME | TYPE/NAME) --replicas=COUNT [--resource-version=version] [--current-replicas=count] [flags]

–replicas=NEW_REPLICAS_COUNT 指定新的副本数量。

FILENAME 指定要扩展的资源的配置文件。

TYPE 指定要扩展的资源类型,如 Deployment、ReplicaSet 或 StatefulSet。

NAME 指定要扩展的资源的名称。

 例如:要将名为 my-deployment 的 Deployment 的副本数量扩展为 3,可以使用以下命令
      kubectl scale --replicas=3 deployment/my-deployment

标签:kubectl,NAME,Kubernetes,--,命令,flags,kubernetes,TYPE
From: https://blog.csdn.net/qq42004/article/details/136772509

相关文章

  • Linux 运维工程师面试真题-2-Linux 命令及文件操作
    Linux运维工程师面试真题-2-Linux命令及文件操作1.在/tmp/目录下创建test.txt文件,内容为:Hello,World!,用一个命令写出来。2.给test.txt文件除所有者之外增加执行权限,最终以数字写出文件的权限。3.用vi命令编辑test.txt,如何跳转到末行,首行,行首、行末,如何在光标行下一......
  • 【Python使用】python高级进阶知识md总结第4篇:静态Web服务器-命令行启动动态绑定端口
    python高级进阶全知识知识笔记总结完整教程(附代码资料)主要内容讲述:操作系统,虚拟机软件,Ubuntu操作系统,Linux内核及发行版,查看目录命令,切换目录命令,绝对路径和相对路径,创建、删除文件及目录命令,复制、移动文件及目录命令,终端命令格式的组成,查看命令帮助。HTTP请求报文,HTTP响应报文......
  • 命令行生成jar文件
    做IT也二十年有余了,一直做着运维工作,编程仅是业余兴趣,水平就是在HelloWorld的基础上多做几个练习,行在各语言都能试试手,偶尔也能做些提高效率小工具,多是味都没怎么嚼就新版本了,人也白发生了...运维吗,效率在先,什么容易就用什么,c#,php,autoit,shell,bat,vba,sql,powershell,python,唯java总......
  • Linux常用命令
    目录find./-typef-size+102400kfind./-typef-size+102400kfind./-typef-size+102400kfind:这是一个命令行工具,用于在目录树中搜索和定位文件的列表。./:这指定了find命令应该从哪里开始搜索。在这个例子中,它从当前目录开始。-typef:这个选项告诉find......
  • Git常用命令详解
    目录前言操作环境准备工作Linux安装gitgit简介本地控制保证完整性Git一般只添加数据git大致流程本地仓库管理初始化git仓库存到暂存区.gitignore文件提交到本地仓库分支管理新建分支查看分支切换分支合并分支删除分支版本回滚远程仓库管理第三方远程仓库Gitee注册账......
  • 【课设】/【毕设】ESP32上传温湿度至新版Onenet云平台并由新版Onenet云平台下发命令控
    一、uniapp设计  1、APP生成token秘钥:  1.1.下载HBuider软件:     直接搜索HBuider,进入官网下载软件:  2.新建项目-选择默认模版3.打开index.vue4.点击运行至内置浏览器;2.1获取Onenet云平台API接口 2.1.1进入Onenet云平台点击服务与支持-文档......
  • Linux入门命令讲解
    //========================================================命令提示符,显示了1)当前登录的用户名2)用户当前所在的路径//========================================================linux命令的格式        命令  [选项] [参数]举例:         ......
  • 一个命令查看自己的WIFI密码
    一个命令查看自己的WIFI密码忘记wifi密码怎么办?一个命令查看自己的wifi密码。一、打开命令行使用快捷键“Win+R”,打开运行窗口,输入“cmd”后回车即可。二、输入命令networkshell命令输入命令networkshell,简称netsh;再输入wlan,也就是wifi;最后输入showprofile。......
  • docker-compose的下载部署与常用命令
    下载方式一:使用wget下载wgethttps://github.com/docker/compose/releases/download/v2.15.1/docker-compose-linux-x86_64方式二:使用rz命令本地上传rz#将本地docker-compose文件上传部署1将执行文件放入环境变量cp./docker-compose/usr/local/bin/docker-compose......
  • kubernetes中的内存表示单位Mi和M的区别
    官网解释:Meaningofmemory,Mi表示(1Mi=1024x1024),M表示(1M=1000x1000)(其它单位类推,如Ki/KGi/G)创建两个pod,一个申请1Mi,另一个申请1MTRANSLATEwithxEnglishArabicHebrewPolishBulgarianHindiPortugueseCatalanHmongDawRomanianChines......