您的位置:首页 > 房产 > 家装 > 建站代理_90平方简装图3一4万_百度打广告多少钱_人民日报新闻消息

建站代理_90平方简装图3一4万_百度打广告多少钱_人民日报新闻消息

2025/4/3 22:41:00 来源:https://blog.csdn.net/qq_65998623/article/details/146771114  浏览:    关键词:建站代理_90平方简装图3一4万_百度打广告多少钱_人民日报新闻消息
建站代理_90平方简装图3一4万_百度打广告多少钱_人民日报新闻消息

使用Kubectl命令

文章目录

  • 使用Kubectl命令
    • @[toc]
    • 一、Kubectl命令的基本用法
    • 二、Kubectl常用子命令
    • 三、Kubectl命令支持的资源类型
    • 四、Kubectl命令支持的输出格式
    • 五、熟悉kubectl命令的用法
      • 1.获取kubectl命令的帮助信息
      • 2.使用kubectl命令行补全功能
      • 3.使用kubectl命令辅助生成YAML配置文件

一、Kubectl命令的基本用法

kubectl 是 Kubernetes 的命令行工具,用于管理集群和资源。

语法格式:kubectl [command] [type] [name] [flags]

  • command:操作指令(如 getcreatedelete)。
  • type:资源类型(支持单数/复数/简写,如 pod/pods/po)。
  • name:资源名称(不指定则显示全部)。
  • flags:可选参数(如 -n 指定命名空间,-o 定义输出格式)

二、Kubectl常用子命令

kubectl 提供了大量子命令,方便管理 Kubernetes 集群中的各种功能,以下是一些常用子命令分类介绍:

分类子命令功能描述示例
基础命令create根据文件或者输入来创建资源kubectl create -f demo-deployment.yaml
基础命令get用于获得资源信息kubectl get pod --all - namespaces
基础命令describe显示特定资源的详细信息kubectl describe pod podName
基础命令delete根据 yaml 文件或具体资源名称删除资源kubectl delete -f demo - deployment.yaml
基础命令run创建并运行一个或多个容器镜像kubectl run NAME --image = image
基础命令expose将 Deployment、Service 等资源暴露为新的 Service-
基础命令edit使用默认编辑器编辑服务器上定义的资源对象-
部署命令rollout对资源进行管理,如回滚 Deploymentkubectl rollout undo deployment
部署命令rolling - update执行指定 ReplicationController 的滚动更新-
部署命令scale扩容或缩容 Deployment、ReplicaSet 等中 Pod 数量kubectl scale deployment --replicas = 3
部署命令autoscale根据流量自动进行扩展或者缩容kubectl autoscale deployment foo --min=2 --max=10 --cpu-percent=80
集群管理命令cluster - info显示集群信息,如 API Server 和其他服务地址-
集群管理命令top查看资源的 CPU、内存、磁盘等资源的使用率kubectl top pod
集群管理命令cordon标记某个节点不可调度-
集群管理命令uncordon标记节点可以调度-
集群管理命令drain在维护期间排除节点-
集群管理命令taint给某个 Node 节点设置污点-
故障排查和调试命令logs在一个 Pod 中打印一个容器的日志kubectl logs -f --tail 500 -n kube - system kube - apiserver - k8s - master
故障排查和调试命令exec进入容器进行交互,在容器中执行命令kubectl exec -it podName -n nsName /bin/bash
故障排查和调试命令attach连接到一个正在运行的容器-
故障排查和调试命令port - forward将本地端口转发到 Pod 的端口-
故障排查和调试命令proxy创建一个代理服务器,用于访问 Kubernetes API-
故障排查和调试命令cp拷贝文件或者目录到 Pod 容器中-
其他命令config修改 kubeconfig 配置文件kubectl config current - context
其他命令help查看命令帮助-
其他命令version打印客户端和服务端版本信息-
其他命令apply通过文件名或者标准输入对资源应用配置kubectl apply -f pod.json
其他命令patch使用补丁修改、更新资源的字段-
其他命令replace通过文件或者标准输入替换原有资源-
其他命令convert在不同的版本之间转换配置文件-

三、Kubectl命令支持的资源类型

Kubectl命令支持的资源类型丰富多样,可通过kubectl api-resources命令获取完整列表。以下是部分常见资源类型及其缩写、所属API组和命名空间相关信息:

资源类型缩写API组命名空间相关说明
bindingsv1true绑定资源,用于将 Pod 绑定到节点
componentstatusescsv1false集群组件状态,如 etcd、scheduler 等
configmapscmv1true存储配置数据,可被 Pod 使用
endpointsepv1true服务端点,关联服务和 Pod
eventsevv1true集群事件记录,用于调试和监控
limitrangeslimitsv1true资源配额限制,用于命名空间内
namespacesnsv1false资源隔离的逻辑空间
nodesnov1false集群中的节点,即物理或虚拟机
persistentvolumeclaimspvcv1true持久卷声明,用于请求存储资源
persistentvolumespvv1false持久卷,提供存储资源
podspov1true最小可部署的计算单元,包含一个或多个容器
podtemplatesv1truePod 模板,用于创建 Pod
replicationcontrollersrcv1true副本控制器,用于管理 Pod 副本数量
resourcequotasquotav1true资源配额,限制命名空间内资源使用
secretsv1true存储敏感信息,如密码、密钥等
serviceaccountssav1true服务账户,用于 Pod 与 API 交互
servicessvcv1true服务抽象,提供稳定的网络访问
mutatingwebhookconfigurationsadmissionregistration.k8s.io/v1false变异 Webhook 配置,用于修改资源对象
validatingwebhookconfigurationsadmissionregistration.k8s.io/v1false验证 Webhook 配置,用于验证资源对象
customresourcedefinitionscrd, crdsapiextensions.k8s.io/v1false自定义资源定义,用于扩展 Kubernetes API
apiservicesapiregistration.k8s.io/v1falseAPI 服务,用于注册和管理 API 扩展
controllerrevisionsapps/v1true控制器版本,用于记录控制器状态
daemonsetsdsapps/v1true守护进程集,确保每个节点运行一个 Pod 副本
deploymentsdeployapps/v1true部署资源,用于管理 Pod 和 ReplicaSet
replicasetsrsapps/v1true副本集,用于管理 Pod 副本数量
statefulsetsstsapps/v1true有状态集,用于管理有状态应用
horizontalpodautoscalershpaautoscaling/v1true水平 Pod 自动伸缩器,根据负载自动调整 Pod 数量
cronjobscjbatch/v1true定时任务,按时间表执行作业
jobsbatch/v1true作业,用于执行一次性任务
certificatesigningrequestscsrcertificates.k8s.io/v1false证书签名请求,用于获取 TLS 证书
ingressesingnetworking.k8s.io/v1true入口资源,用于管理外部访问集群内服务
networkpoliciesnetpolnetworking.k8s.io/v1true网络策略,用于控制 Pod 之间的网络流量
poddisruptionbudgetspdbpolicy/v1truePod 中断预算,确保高可用应用的 Pod 数量
clusterrolebindingsrbac.authorization.k8s.io/v1false集群角色绑定,用于授权集群范围的资源访问
clusterrolesrbac.authorization.k8s.io/v1false集群角色,定义集群范围的权限
rolebindingsrbac.authorization.k8s.io/v1true角色绑定,用于授权命名空间内的资源访问
rolesrbac.authorization.k8s.io/v1true角色,定义命名空间内的权限
priorityclassespcscheduling.k8s.io/v1false优先级类,用于定义 Pod 的调度优先级

四、Kubectl命令支持的输出格式

Kubectl命令默认输出格式是人类可读的明文格式,若要以特定格式输出详细信息,可将-o--output参数添加到受支持的命令中。以下是Kubectl命令支持的输出格式:

输出格式说明示例
-o wide以纯文本格式显示资源的附加信息,对于Pod包含节点名称等 。kubectl -n kube-system get pods -o wide
-o name仅打印资源的名称 。kubectl get pods -o name
-o yaml以YAML格式化输出API对象信息 。kubectl -n kube-system get pod calico-node-8n44g -o yaml
-o json以JSON格式展示API对象 。kubectl get pod nginx-85b98978db-pv55z -o json
-o jsonpath=<template>输出jsonpath表达式定义的字段信息 。kubectl get pods --selector=app=cassandra -o jsonpath='{.items[*].metadata.labels.version}'
-o jsonpath-file=<filename>输出由文件中的jsonpath表达式定义的字段信息 。kubectl get pods -o jsonpath-file=path/to/file
-o custom-columns=<spec>使用逗号分隔的自定义列列表打印表格,自定义要输出的字段 。kubectl get pod nginx-85b98978db-pv55z -o custom-columns=NAME:.metadata.name,RSRC:.metadata.resourceVersion,NAMESPACE:.metadata.namespace
-o custom-columns-file=<filename>使用文件中的自定义列模板打印表格 。kubectl get pod nginx-85b98978db-pv55z -o custom-columns-file=tmp.txt

五、熟悉kubectl命令的用法

1.获取kubectl命令的帮助信息

使用kubectl -h命令可以查看子命令列表,通过以下用法可以查看某个子命令的帮助信息。

kubectl <command> --help

例如,查看kubectl run命令的帮助信息

[root@master ~]# kubectl run --help
Create and run a particular image in a pod.Examples:# Start a nginx podkubectl run nginx --image=nginx# Start a hazelcast pod and let the container expose port 5701kubectl run hazelcast --image=hazelcast/hazelcast --port=5701# Start a hazelcast pod and set environment variables "DNS_DOMAIN=cluster" and
"POD_NAMESPACE=default" in the containerkubectl run hazelcast --image=hazelcast/hazelcast --env="DNS_DOMAIN=cluster"
--env="POD_NAMESPACE=default"# Start a hazelcast pod and set labels "app=hazelcast" and "env=prod" in the
containerkubectl run hazelcast --image=hazelcast/hazelcast
--labels="app=hazelcast,env=prod"......

执行kubectl options命令可以查看全局选项。

执行kubectl api-resources命令可以查看支持的资源列表,其中SHORTNAMES列列出的是资源名称的缩写(别名)

[root@master ~]# kubectl api-resources
NAME                              SHORTNAMES   APIVERSION                             NAMESPACED   KIND
bindings                                       v1                                     true         Binding
componentstatuses                 cs           v1                                     false        ComponentStatus
configmaps                        cm           v1                                     true         ConfigMap
endpoints                         ep           v1                                     true         Endpoints
events                            ev           v1                                     true         Event
limitranges                       limits       v1                                     true         LimitRange
namespaces                        ns           v1                                     false        Namespace
nodes                             no           v1                                     false        Node
......

2.使用kubectl命令行补全功能

实现kubectl命令行补全功能需要安装bash-completion包

[root@master ~]# yum install bash-completion -y
上次元数据过期检查:1:18:01 前,执行于 2025年03月30日 星期日 17时39分32秒。
软件包 bash-completion-1:2.7-5.el8.noarch 已安装。
依赖关系解决。
无需任何处理。
完毕!

执行以下命令使配置生效

[root@master ~]# source /usr/share/bash-completion/bash_completion

3.使用kubectl命令辅助生成YAML配置文件

从零开始为K8S对象编写YAML配置文件的效率很低,而且容易出错,我们可以利用kubectl命令来辅助生成部署用的YAML配置文件,然后根据需要修改文件。

可以使用kubectl explain命令获取特定资源及其字段的范围

kubectl explain resources[.field]...

查看Deployment资源及其字段的规范

[root@master ~]# kubectl explain deployment
GROUP:      apps
KIND:       Deployment
VERSION:    v1DESCRIPTION:Deployment enables declarative updates for Pods and ReplicaSets.FIELDS:apiVersion    <string>APIVersion defines the versioned schema of this representation of an object.Servers should convert recognized schemas to the latest internal value, andmay reject unrecognized values. More info:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resourceskind  <string>Kind is a string value representing the REST resource this objectrepresents. Servers may infer this from the endpoint the client submitsrequests to. Cannot be updated. In CamelCase. More info:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kindsmetadata      <ObjectMeta>Standard object's metadata. More info:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadataspec  <DeploymentSpec>Specification of the desired behavior of the Deployment.status        <DeploymentStatus>Most recently observed status of the Deployment.

该命令输出请求的资源及其字段的规范,默认情况下仅显示下一级别的字段,可以使用–recursive选项来显示所有级别的字段

可以查看特定字段的规范

[root@master ~]# kubectl explain pods.spec.containers
KIND:       Pod
VERSION:    v1FIELD: containers <[]Container>DESCRIPTION:List of containers belonging to the pod. Containers cannot currently beadded or removed. There must be at least one container in a Pod. Cannot beupdated.A single application container that you want to run within a pod.

效率更高的方法是自动生成YAML配置文件,这里给出生成Deployment配置文件的例子

[root@master ~]# kubectl create deployment nginx-deploy \
> --image=nginx \
> -o yaml \
> --dry-run=client > nginx-deploy.yaml			//表示在本地尝试运行,但是不会实际部署,即所谓的“干跑”模式
[root@master ~]# ls
anaconda-ks.cfg  cri-dockerd-0.3.2-3.el7.x86_64.rpm  nginx-deploy.yaml  test-ns.yaml
calico.yaml      nginx-deployment.yaml               nginx-label.yaml
[root@master ~]# cat nginx-deploy.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:creationTimestamp: nulllabels:app: nginx-deployname: nginx-deploy
spec:replicas: 1selector:matchLabels:app: nginx-deploystrategy: {}template:metadata:creationTimestamp: nulllabels:app: nginx-deployspec:containers:- image: nginxname: nginxresources: {}
status: {}
[root@master ~]# 

这样我们就可以在此文件的基础上进行修改,更轻松地定制要创建的Deployment。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com