本文将帮助您理解DevOps 工程师所需的最重要的和最常用的 Kubernetes 命令。通过掌握这些命令,您将能够轻松导航和控制 Kubernetes 集群。...kubectl cluster-info 列出可用的 Kubernetes API 资源 在 Kubernetes 中,该api-resources命令用于kubectl列出集群 API 服务器上可用的所有顶级...例如,此处创建命名空间 kubectl create namespace 修补 Kubernetes 资源 通过应用合并补丁、JSON 合并补丁或 JSON 补丁来修改资源的属性...kubectl logs -f 在pod中执行命令 直接在 pod 中的容器内执行命令。...edit svc/docker-registry # 使用其他编辑器 调试资源 用于对 Kubernetes 中现有 Pod 进行故障排除的调试 Pod kubectl debug my-pod
每个 CephBlockPool 都对应一个特定的存储后端,用于提供块存储服务。通过创建不同的 CephBlockPool,可以为不同的应用程序提供不同的存储配置和性能要求。...当使用rook搭建好集群后,它已经将用于身份验证和授权所需的 Kubernetes Secret 对象创建好了,使用下面命令可以查看: [root@k8s-a-master rbd]# kubectl ...kubectl delete -f pod.yml:这个命令将删除包含 Rook 块存储的 Pod。...kubectl delete storageclass rook-ceph-block:这个命令将删除名为 rook-ceph-block 的 Rook 存储类。...存储类指定了用于存储数据的存储类型和属性。删除存储类将确保不再创建新的 Rook 存储卷。 需要注意的是,这4个命令需要按照指定的顺序执行,以确保完全卸载 Rook 块存储。
以下是命令的一般语法: kubectl [command] [TYPE] [NAME] [flags] 让我们回顾一下这些属性: command — 描述要执行的操作类型。...如果不指定,则该命令适用于当前命名空间集群中的所有资源。 flags —这些表示特殊选项或对特定信息的请求。它们也可以用作修饰符来覆盖默认值或环境变量。 8 大 kubectl 命令详解 1....Create and Modify(创建和修改 ) 你可以使用 kubectl 中的apply命令,从特定文件或标准输入 (stdin) 创建资源。...PersistentVolume 持久卷(PV) Kubernetes PersistentVolume是一种在 Kubernetes 集群中配置存储的机制。...还可以使用kubectl autoscale操作设置基本的Kubernetes 自动缩放功能。然而,此命令仅适用于 CPU 利用率指标。 8.
PersistentVolume 其他 访问控制 StorageClass 简介 持久卷(PersistentVolume,PV) 是集群中的一块存储,可以由管理员事先制备, 或者使用存储类(Storage...控制面仍然会检查存储类、 访问模式和所请求的存储尺寸都是合法的。...Kubernetes 本身并不清楚各种类代表的什么。这个类的概念在其他存储系统中有时被称为 “配置文件”。...StorageClass 对象的命名很重要,用户使用这个命名来请求生成一个特定的类。...管理员可以为没有申请绑定到特定 StorageClass 的 PVC 指定一个默认的存储类。
Kubectl 命令是操作 kubernetes 集群的最直接的方式,特别是运维人员,需要对这些命令有一个详细的掌握Kubectl 自动补全# setup autocomplete in bash, bash-completion...source <(kubectl completion zsh)Kubectl 上下文和配置设置 kubectl 命令交互的 kubernetes 集群并修改配置信息。...(taint)已存在,则使用指定的值替换$ kubectl taint nodes foo dedicated=special-user:NoScheduleset 命令配置应用的一些特定资源,也可以修改应用已有的资源使用...注意:目前selector命令只能用于Service对象。...格式化输出要以特定的格式向终端窗口输出详细信息,可以在 kubectl 命令中添加 -o 或者 -output 标志。
kubectl的常用命令 kubectl作为kubernetes的命令行工具,主要的职责就是对集群中的资源的对象进行操作,这些操作包括对资源对象的创建、删除和查看等。...$ kubectl describe deployments/nginx 4、kubectl exec命令 此命令用于在Pod中的容器上执行一个命令,此处在nginx的一个容器上执行/bin/bash命令...$ kubectl exec -it nginx-c5cff9dcc-dr88w /bin/bash 5、kubectl logs命令 此命令用于获取Pod中一个容器的日志信息,此处获取nginx一个容器的日志信息...$ kubectl logs nginx-c5cff9dcc-dr88w 6、kubectl delete命令 此命令用于删除集群中已存在的资源对象,可以通过指定名称、标签选择器、资源选择器等。...删除命名空间 my-ns 下所有的 pod 和 service,包括未初始化的对象 7、kubectl rolling-update 命令 此命令用于滚动更新,对镜像、端口等的更新 $ kubectl
由于 Kubernetes 在设计时并未考虑任何特定的 CNI(网络)插件,因此尝试通过 Kubectl 管理 Cilium 代理可能性不确定。...default 某些角色仅适用于具有特定名称的资源。...11、Rolesum Plugin Rolesum Kubectl 插件主要用于生成 Kubernetes 集群中定义的角色和权限的摘要。...3、权限提升:Kubectl 插件以与 Kubectl 命令相同的权限运行,因此如果插件遭到破坏,它可能会被用于提升权限并获得对集群中敏感资源的访问权限。...为了减轻这些风险,重要的是对所构建的插件进行安全扫描,或只安装来自可信来源的 Kubectl 插件,并定期更新和修补已安装的所有关联插件。
由于 Kubernetes 在设计时并未考虑任何特定的 CNI(网络)插件,因此尝试通过 Kubectl 管理 Cilium 代理可能性不确定。... 某些角色仅适用于具有特定名称的资源。...11、Rolesum Plugin Rolesum Kubectl 插件主要用于生成 Kubernetes 集群中定义的角色和权限的摘要。...3、权限提升:Kubectl 插件以与 Kubectl 命令相同的权限运行,因此如果插件遭到破坏,它可能会被用于提升权限并获得对集群中敏感资源的访问权限。 ...为了减轻这些风险,重要的是对所构建的插件进行安全扫描,或只安装来自可信来源的 Kubectl 插件,并定期更新和修补已安装的所有关联插件。
kubectl 命令是操作 Kubernetes 集群的最直接和最高效的途径,这个60多 MB 大小的二进制文件,到底有啥能耐呢?...上下文和配置 设置 kubectl 命令交互的 kubernetes 集群并修改配置信息。...# 列出该 namespace 中的所有 pod 包括未初始化的 # 使用详细输出来描述命令 $ kubectl describe nodes my-node $ kubectl describe...(@.type=="ExternalIP")].address}' # 列出属于某个 PC 的 Pod 的名字 # “jq”命令用于转换复杂的 jsonpath,参考 https://stedolan.github.io...格式化输出 要以特定的格式向终端窗口输出详细信息,可以在 kubectl 命令中添加 -o 或者 -output 标志。
Kubernetes提供RBAC授权,根据不同角色设定,管理Kubernetes内部特定资源的访问权限。这些机制对于管理Kubernetes的特定对象(如服务、命名空间、配额等)的访问权限非常有用。...出于安全原因,这些数据被存储在Kube-system命名空间中的Kubernetes Secrets中,只有少量的管理员和应用程序可以访问该命名空间。...通常,这些用户有分配给他们的属性,这些属性定义了他们的用户类型。 首先,我们将创建一个存储管理员,该管理员具有全部权限。这样的管理员应该只有一两个。...为了让Kubernetes的用户使用PX-Security,用户必须在向集群发出请求时使用自己的Token。一种方法是让管理员在Kubernetes存储类中配置Token。...下面的CSI存储类一旦创建,将使您的多租户能够使用存储在其命名空间中的Secret中的Token,来创建卷,方法是在命名空间中查找Secret。
Kubernetes 提供了一个名为 ConfigMap 的资源对象,它用于存储应用的配置信息。有时,我们需要查找哪些 ConfigMap 包含特定的配置值,例如一个特定的 IP 地址或者字符串。...现在继续去扩展一下jq的用户 使用 kubectl 和 jq 搜索 ConfigMaps kubectl 是 Kubernetes 的命令行工具,使用者可以通过它与 Kubernetes 集群进行交互。...jq 是一个功能强大的轻量级命令行 JSON 处理器,它在 Kubernetes 环境管理中充当了一个不可或缺的角色。...使用 jq 过滤和映射数据 映射数据属性 jq 可以将 JSON 对象中的数据映射到一个新的结构中去。...分组和分类 集群中的资源可以按照一定的属性进行分组。
存储编排 Kubernetes 允许您自动挂载您选择的存储系统,例如本地存储、公共云提供商等。...Kubernetes 数据存储 在之前的文章中,我们已经知道了很多 K8S 中的组件了,包括资源控制器等。...介绍 K8S 中常见的存储机制可以让我们所使用的:Kubernetes 之数据存储 Kubernetes 集群调度 有这样一个需求,就是集群中多台服务的配置是不一致的。...给Kubernetes对象添加标签 标签就像附加到对象上的键/值对,比如pods。标签是用来标识对象的属性的,这些属性对用户来说是重要的和有意义的。...第二类 0.0.0.0 严格来说,0.0.0.0 已经不是一个真正意义上的 IP 地址了。它表示的是这样一个集合:所有不清楚的主机和目的网络。这里的不清楚是指在本机的路由表里没有特定条目指明如何到达。
存储编排 Kubernetes 允许您自动挂载您选择的存储系统,例如本地存储、公共云提供商等。...数据存储 在之前的文章中,我们已经知道了很多 K8S 中的组件了,包括资源控制器等。...[76818502-880c-422a-9976-a5d3b1fd113e.png] 介绍 K8S 中常见的存储机制可以让我们所使用的:Kubernetes 之数据存储 集群调度 有这样一个需求,就是集群中多台服务的配置是不一致的...给Kubernetes对象添加标签 标签就像附加到对象上的键/值对,比如pods。标签是用来标识对象的属性的,这些属性对用户来说是重要的和有意义的。...第二类 0.0.0.0 严格来说,0.0.0.0 已经不是一个真正意义上的 IP 地址了。它表示的是这样一个集合:所有不清楚的主机和目的网络。这里的不清楚是指在本机的路由表里没有特定条目指明如何到达。
kubectl describe 命令用于检索有关特定 Kubernetes 资源的详细信息。...例如,要检索有关特定容器的详细信息,可以: kubectl describe pod kubectl delete kubectl delete 命令用于删除 Kubernetes...例如,要删除特定 Pod,可以: kubectl delete pod my-pod kubectl exec kubectl exec 命令用于在正在运行的容器中执行命令。...命令用于在 Kubernetes 资源中添加或删除标签。...它可用于从各种资源(包括节点、Pod 等)中检索指标。 kubectl top pod my-pod kubectl set 此命令用于更新或修改 Kubernetes 资源的状态。
kubectl apply 的语法 该kubectl apply命令用于将配置更改应用于资源。...您只需在 .yaml 或 .json 文件中定义资源的配置,然后用于kubectl apply创建它。 更新资源 kubectl apply不仅用于创建资源,还用于更新资源。...使用 VCS 意味着kubectl apply将所有 Kubernetes 配置文件存储在像 Git 这样的 VCS 中。...例如,与特定应用程序相关的所有资源都可以有一个标签,其中键为“app”,应用程序的名称作为值。 使用标签对资源进行分组后,您可以将kubectl apply更改应用到具有特定标签的所有资源。...注意声明性命令和命令式命令 Kubernetes 命令大致可分为两类:声明式命令和命令式命令。声明性命令指定系统所需的状态,然后 Kubernetes 找出如何实现该状态。
垃圾收集 垃圾收集(Garbage Collection,GC)是 Kubernetes 用于清理集群资源的各种机制的统称。...附属对象还有一个 ownerReferences.blockOwnerDeletion 字段,该字段使用布尔值, 用于控制特定的附属对象是否可以阻止垃圾收集删除其Owner对象。...相反,它们通常是特定资源上的键的列表,类似于注解。Kubernetes 自动指定了一些 Finalizers,但你也可以指定你自己的。...不能使用 kubectl 在命令行上指定级联删除策略。我们必须使用自定义 API 调用来指定它。...patch这是使用该命令删除Finalizers的演示。如果我们想删除一个对象,我们可以简单地在命令行上修补它以删除Finalizers。这样,在后台运行的删除将完成,对象将被删除。
而容忍度tolerations是定义在 Pod对象上的键值型属性数据,用于配置其可容忍的节点污点,而且调度器仅能将Pod对象调度至其能够容忍该节点污点的节点之上,如图所示 ?...简单来说,节点亲和性使得Pod对象被吸引到一类特定的节点,而污点则相反,它提供了让节点排斥特定Pod对象的能力。...可以查看节点上的污点信息 需要注意的是,即便是同一个键值数据,若其效用标识不同,则其也分属于不同的污点信息,例如,将上面命令中的效用标识定义为PreferNoSchedule再添加一次 # kubectl...命令将节点属性spec.taints的值直接置空即可,例如: # kubectl patch nodes node01.linux.io -p '{"spec":{"taints":[]}}' node...另外,某些有着特殊硬件的节点需要专用于运行一类有着此类硬件资源需求的Pod对象时,例如,那些有着SSD或GPU的设备,也应该为其添加污点信息以排除其他的Pod对象。
Pod资源详解 pod的结构 Pod定义 Pod的配置 pod镜像拉取 pod的启动命令 pod的环境变量 pod的端口设置 pod的资源配额 pod的结构 每个Pod中都可以包含一个或者多个容器,这些容器可以分为两类...Ip(Pod IP),以实现Pod内部的网路通信 Pod定义 在这里,可通过一个命令来查看每种资源的可配置项 kubectl explain 资源类型 查看某种资源可以配置的一级属性 kubectl...explain 资源类型.属性 查看属性的子属性 在kubernetes中基本所有资源的一级属性都是一样的,主要包含5部分: apiVersion 版本,由kubernetes内部定义...里面是对各种资源配置的详细描述 -status 状态信息,里面的内容不需要定义,由kubernetes自动生成 在上面的属性中,spec是接下来研究的重点,继续看下它的常见子属性: containers... 存储卷,用于定义Pod上面挂在的存储信息 restartPolicy 重启策略,表示Pod在遇到故障的时候的处理策略 Pod配置 查看的路径: kubectl
在进一步讨论对某些 Kubernetes 资源有用的特定命令之前,了解可以应用于许多不同对象的某些有用标志是值得的。 有用标志: — env: --env 标志允许您为正在创建的容器指定环境变量。...] [job-name] 使用 Secret Secret 用于在 Kubernetes 中安全地存储敏感信息,如密码、OAuth 令牌和 SSH 密钥。...在 Kubernetes 中,JSONPath 表达式通常与 kubectl 命令中的 -o jsonpath 标志一起使用,以从这些命令的输出中提取特定信息。...它主要查找两类内容并予以忽略:由 Kubernetes 对象模型插入的默认值和常见的变异控制器。...您将在此处找到一个存储库,其中包含一个 脚本,用于生成数百个方便的 shell 别名 kubectl。问题是许多别名很长,可能难以回忆。
控制器,通过它来实现对 pod 的管理,比如启动 pod,停止 pod,伸缩 pod 的数量等等 Service: pod 对外服务的统一入口,可以维护同一类的多个 pod Label: 标签,用于对...1)命令式对象管理 kubectl 这个是 kubernetes 集群的命令行工具,通过 kubectl 能够对集群本身进行管理,并能够在集群上进行容器化应用的安装部署。...命令分类 1、 基础命令 名称 描述 create 通过文件名或标准输入创建资源 expose 将一个资源公开为一个新的 Service run 在集群中运行一个特定的镜像 set 在对象上设置特定的功能...一旦被创建就会放入 etcd 中存储,接着就会被调度到任一节点上运行,当 Pod 里某个容器停止时,Kubernetes 会自动检测到这个问题并且重新启动这个 Pod 里某所有容器, 如果 Pod 所在的...kubernetes 启动后,无论是 master 节点 亦或者 node 节点,都会将自身的信息存储到 etcd 数据库中 用户通过 kubectl 或其他 api 客户端提交需要创建的 pod 信息给
领取专属 10元无门槛券
手把手带您无忧上云