Kubernetes Set 命令

KubernetesKubernetesBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

Kubernetes 中的 set 命令是一个多功能工具,允许你修改现有 Kubernetes 资源的配置。此命令支持调整容器镜像、配置资源请求和限制等操作,而无需直接编辑 YAML 文件。它简化了资源管理并提高了操作效率。

在本实验结束时,你将了解如何:

  • 启动 Kubernetes 集群。
  • 更新部署(deployment)的容器镜像。
  • 为部署配置资源请求和限制。
  • 使用相关命令修改部署的标签(labels)和注解(annotations)。

本实验专为初学者设计,假设你正在使用已安装 Kubernetes 工具的 Ubuntu Linux 系统。无需具备 Kubernetes 的先前经验。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL kubernetes(("`Kubernetes`")) -.-> kubernetes/BasicsGroup(["`Basics`"]) kubernetes(("`Kubernetes`")) -.-> kubernetes/BasicCommandsGroup(["`Basic Commands`"]) kubernetes(("`Kubernetes`")) -.-> kubernetes/ClusterInformationGroup(["`Cluster Information`"]) kubernetes(("`Kubernetes`")) -.-> kubernetes/TroubleshootingandDebuggingCommandsGroup(["`Troubleshooting and Debugging Commands`"]) kubernetes(("`Kubernetes`")) -.-> kubernetes/ConfigurationandVersioningGroup(["`Configuration and Versioning`"]) kubernetes/BasicsGroup -.-> kubernetes/initialization("`Initialization`") kubernetes/BasicCommandsGroup -.-> kubernetes/get("`Get`") kubernetes/BasicCommandsGroup -.-> kubernetes/create("`Create`") kubernetes/BasicCommandsGroup -.-> kubernetes/set("`Set`") kubernetes/BasicCommandsGroup -.-> kubernetes/run("`Run`") kubernetes/BasicCommandsGroup -.-> kubernetes/annotate("`Annotate`") kubernetes/ClusterInformationGroup -.-> kubernetes/cluster_info("`Cluster Info`") kubernetes/TroubleshootingandDebuggingCommandsGroup -.-> kubernetes/describe("`Describe`") kubernetes/ConfigurationandVersioningGroup -.-> kubernetes/label("`Label`") subgraph Lab Skills kubernetes/initialization -.-> lab-8424{{"`Kubernetes Set 命令`"}} kubernetes/get -.-> lab-8424{{"`Kubernetes Set 命令`"}} kubernetes/create -.-> lab-8424{{"`Kubernetes Set 命令`"}} kubernetes/set -.-> lab-8424{{"`Kubernetes Set 命令`"}} kubernetes/run -.-> lab-8424{{"`Kubernetes Set 命令`"}} kubernetes/annotate -.-> lab-8424{{"`Kubernetes Set 命令`"}} kubernetes/cluster_info -.-> lab-8424{{"`Kubernetes Set 命令`"}} kubernetes/describe -.-> lab-8424{{"`Kubernetes Set 命令`"}} kubernetes/label -.-> lab-8424{{"`Kubernetes Set 命令`"}} end

启动 Kubernetes 集群

在与 Kubernetes 资源交互之前,请确保 Kubernetes 集群正在运行。在本实验中,我们将使用 Minikube 来设置一个单节点的 Kubernetes 集群。

  1. 打开终端并启动 Minikube:

    minikube start

    这将初始化一个本地的 Kubernetes 集群。Minikube 会自动分配适当的资源,但你可以根据需要使用 --cpus--memory 等标志进行自定义。

  2. 验证 Minikube 是否正在运行:

    kubectl cluster-info

    确保输出确认集群已正常运行。

创建 Deployment

在集群运行后,使用 nginx 镜像创建一个名为 hello-world 的简单 Kubernetes 部署(Deployment)。

  1. 运行以下命令以创建部署:

    kubectl create deployment hello-world --image=nginx

    此命令将创建一个名为 hello-world 的部署,其中包含一个 nginx 容器的副本。

  2. 验证部署是否成功创建:

    kubectl get deployments

    检查输出,确保 hello-world 出现在部署列表中。

探索 kubectl set 命令

kubectl set 命令提供了多个子命令来配置和修改应用程序资源。它帮助管理环境变量、容器镜像和资源设置等特定方面。

  1. 运行以下命令以查看可用的 kubectl set 子命令:

    kubectl set -h

    你将看到以下输出:

    配置应用程序资源。
    
    这些命令帮助你对现有应用程序资源进行更改。
    
    可用命令:
      env              更新 pod 模板上的环境变量
      image            更新 pod 模板上的镜像
      resources        更新具有 pod 模板的对象的资源请求/限制
      selector         设置资源的选择器
      serviceaccount   更新资源的服务账户
      subject          更新角色绑定或集群角色绑定中的用户、组或服务账户
    
    用法:
      kubectl set 子命令 [选项]
    
    使用 "kubectl --help" 获取有关给定命令的更多信息。使用 "kubectl options" 查看全局命令行选项列表(适用于所有命令)。

    查看可用的子命令及其描述,以了解如何使用 kubectl set

  2. 根据需要,使用 kubectl set --help 探索每个子命令的更多详细信息。

更新容器镜像

接下来,将 hello-world 部署中的容器镜像更新为特定版本。

  1. 使用 kubectl set 命令将容器镜像更新为 nginx:1.19.10

    kubectl set image deployment/hello-world nginx=nginx:1.19.10

    此命令更新了 hello-world 部署中的 nginx 容器。

  2. 通过查询容器镜像验证镜像更新:

    kubectl get deployment hello-world -o jsonpath='{.spec.template.spec.containers[0].image}'

    确保输出显示为 nginx:1.19.10

配置资源请求和限制

资源管理对于 Kubernetes 部署至关重要。为 hello-world 部署设置资源请求和限制。

  1. 配置 CPU 和内存的请求和限制:

    kubectl set resources deployment/hello-world --limits=cpu=1,memory=512Mi --requests=cpu=500m,memory=256Mi

    此命令将资源请求设置为 500m CPU 和 256Mi 内存,并将限制设置为 1 CPU 和 512Mi 内存。

  2. 通过描述部署来验证资源设置:

    kubectl describe deployment hello-world

    检查输出中的 LimitsRequests 部分以确认配置。

修改部署的标签

标签(Labels)有助于分类和组织 Kubernetes 资源。使用 kubectl label 命令为部署添加或修改标签。

  1. hello-world 部署添加一个标签 environment=development

    kubectl label deployment hello-world environment=development

    此命令为部署添加了一个新标签。

  2. 验证标签是否已应用:

    kubectl get deployment hello-world --show-labels

    检查 LABELS 列,确认 environment=development 标签是否存在。

更新部署的注解

注解(Annotations)为 Kubernetes 资源提供元数据。使用 kubectl annotate 命令为部署添加或更新注解。

  1. hello-world 部署添加一个注解 owner=team-alpha

    kubectl annotate deployment hello-world owner=team-alpha

    此命令为部署添加了一个注解。

  2. 验证注解是否已应用:

    kubectl describe deployment hello-world

    检查 Annotations 部分,确认 owner=team-alpha 是否存在。

总结

在本实验中,你学习了如何使用 Kubernetes 的 set 命令有效地管理部署。你完成了以下操作:

  • 启动了一个 Kubernetes 集群。
  • 创建了一个部署。
  • 更新了容器镜像。
  • 配置了资源请求和限制。
  • 使用适当的命令修改了标签和注解。

这些技能对于高效管理 Kubernetes 应用程序至关重要。

您可能感兴趣的其他 Kubernetes 教程