5.3. 管理节点


OpenShift Container Platform 使用 KubeletConfig 自定义资源(CR)来管理节点的配置。通过创建 KubeletConfig 对象的实例,会创建一个受管机器配置来覆盖节点上的设置。

注意

不支持为更改配置而登录远程机器。

5.3.1. 修改节点

要对集群或机器池进行配置更改,您必须创建自定义资源定义(CRD)或 kubeletConfig 对象。OpenShift Container Platform 使用 Machine Config Controller 来监控是否通过 CRD 进行了更改,以将更改应用到集群。

注意

因为 kubeletConfig 对象中的字段直接从上游 Kubernetes 传递给 kubelet,所以对这些字段的验证直接由 kubelet 本身处理。有关这些字段的有效值,请参阅相关的 Kubernetes 文档。kubeletConfig 对象中的无效值可能会导致集群节点不可用。

流程

  1. 为您要配置的节点类型,获取与静态 CRD (Machine Config Pool) 关联的标签。执行以下步骤之一:

    1. 检查所需机器配置池的当前标签。

      例如:

      $  oc get machineconfigpool  --show-labels

      输出示例

      NAME      CONFIG                                             UPDATED   UPDATING   DEGRADED   LABELS
      master    rendered-master-e05b81f5ca4db1d249a1bf32f9ec24fd   True      False      False      operator.machineconfiguration.openshift.io/required-for-upgrade=
      worker    rendered-worker-f50e78e1bc06d8e82327763145bfcf62   True      False      False

    2. 为所需的机器配置池添加自定义标签。

      例如:

      $ oc label machineconfigpool worker custom-kubelet=enabled
  2. 为您的配置更改创建一个 kubeletconfig 自定义资源(CR)。

    例如:

    custom-config CR 配置示例

    apiVersion: machineconfiguration.openshift.io/v1
    kind: KubeletConfig
    metadata:
      name: custom-config 1
    spec:
      machineConfigPoolSelector:
        matchLabels:
          custom-kubelet: enabled 2
      kubeletConfig: 3
        podsPerCore: 10
        maxPods: 250
        systemReserved:
          cpu: 2000m
          memory: 1Gi

    1
    为 CR 分配一个名称。
    2
    指定要应用配置更改的标签,这是您添加到机器配置池中的标签。
    3
    指定要更改的新值。
  3. 创建 CR 对象。

    $ oc create -f <file-name>

    例如:

    $ oc create -f master-kube-config.yaml

大多数 Kubelet 配置选项 可由用户设置。不允许覆盖下列选项:

  • CgroupDriver
  • ClusterDNS
  • ClusterDomain
  • RuntimeRequestTimeout
  • StaticPodPath
注意

如果单个节点包含超过 50 个镜像,pod 调度可能会在节点间进行平衡。这是因为节点上的镜像列表默认简写为 50。您可以通过编辑 KubeletConfig 对象来禁用镜像限制,并将 nodeStatusMaxImages 的值设置为 -1

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.