43.3. 创建启动配置和自动扩展组


在部署集群自动扩展前,您必须创建一个 Amazon Web Services(AWS)启动配置和自动缩放组来引用 primed 镜像。您必须配置启动配置,以便在新节点启动时自动加入现有集群。

先决条件

  • 在 AWS 中安装 OpenShift Container Platform 集群。
  • 创建 primed 镜像。
  • 如果在集群中部署了 EFK 堆栈,请将节点标签设置为 logging-infra-fluentd=true

流程

  1. 通过从 master 节点生成 bootstrap.kubeconfig 文件来创建 bootstrap.kubeconfig 文件:

    $ ssh master "sudo oc serviceaccounts create-kubeconfig -n openshift-infra node-bootstrapper" > ~/bootstrap.kubeconfig
  2. bootstrap.kubeconfig 文件创建 user-data.txt cloud-init 文件:

    $ cat <<EOF > user-data.txt
    #cloud-config
    write_files:
    - path: /root/openshift_bootstrap/openshift_settings.yaml
      owner: 'root:root'
      permissions: '0640'
      content: |
        openshift_node_config_name: node-config-compute
    - path: /etc/origin/node/bootstrap.kubeconfig
      owner: 'root:root'
      permissions: '0640'
      encoding: b64
      content: |
        $(base64 ~/bootstrap.kubeconfig | sed '2,$s/^/    /')
    
    runcmd:
    - [ ansible-playbook, /root/openshift_bootstrap/bootstrap.yml]
    - [ systemctl, restart, systemd-hostnamed]
    - [ systemctl, restart, NetworkManager]
    - [ systemctl, enable, atomic-openshift-node]
    - [ systemctl, start, atomic-openshift-node]
    EOF
  3. 将启动配置模板上传到 AWS S3 存储桶。
  4. 使用 AWS CLI 创建启动配置:

    $ aws autoscaling create-launch-configuration \
        --launch-configuration-name mycluster-LC \ 1
        --region us-east-1 \ 2
        --image-id ami-987654321 \ 3
        --instance-type m4.large \ 4
        --security-groups sg-12345678 \ 5
        --template-url https://s3-.amazonaws.com/.../yourtemplate.json \  6
        --key-name production-key \ 7
    1
    指定启动配置名称。
    2
    指定要在其中启动镜像的地区。
    3
    指定您创建的 primed 镜像 AMI。
    4
    指定要启动的实例类型。
    5
    指定要附加到启动镜像的安全组。
    6
    指定您上传的启动配置模板。
    7
    指定 SSH 密钥对名称。
    注意

    如果在对模板进行编码前,如果您的模板少于 16 KB,您可以使用 AWS CLI 将 --template-url 替换为 --user-data 来提供它。

  5. 使用 AWS CLI 创建自动扩展组:

    $ aws autoscaling create-auto-scaling-group \
          --auto-scaling-group-name mycluster-ASG \ 1
          --launch-configuration-name mycluster-LC \ 2
          --min-size 1 \ 3
          --max-size 6 \ 4
          --vpc-zone-identifier subnet-12345678 \ 5
          --tags ResourceId=mycluster-ASG,ResourceType=auto-scaling-group,Key=Name,Value=mycluster-ASG-node,PropagateAtLaunch=true ResourceId=mycluster-ASG,ResourceType=auto-scaling-group,Key=kubernetes.io/cluster/mycluster,Value=true,PropagateAtLaunch=true ResourceId=mycluster-ASG,ResourceType=auto-scaling-group,Key=k8s.io/cluster-autoscaler/node-template/label/node-role.kubernetes.io/compute,Value=true,PropagateAtLaunch=true 6
    1
    指定在部署自动扩展器部署时使用的自动扩展组名称
    2
    指定您创建的 Launch Configuration 的名称。
    3
    指定自动扩展器维护的最小节点数。至少需要一个节点。
    4
    指定 scale 组可扩展为的最大节点数量。
    5
    指定 VPC subnet-id,这是集群使用的同一子网。
    6
    指定这个字符串,以确保在启动时将自动扩展组标签传播到节点。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.