搜索

A.2. 容器化可组合服务

download PDF

以下参数适用于所有容器化可组合服务。

puppet_config

本节是嵌套的键值对,利用 puppet 驱动创建配置文件。所需的参数包括:

puppet_tags
用于通过 Puppet 生成配置文件的 Puppet 资源标签名称。仅使用命名的配置资源来生成文件。任何指定标签的服务都会包含文件, concat,file_line,augeas,cron 附加到该设置的默认标签。示例: keystone_config
config_volume
为该服务生成配置文件的卷名称(目录)。使用此位置将挂载绑定到正在运行的 Kolla 容器中进行配置。
config_image
用于生成配置文件的 docker 镜像的名称。这通常是运行时服务使用的相同容器。有些服务共享一组通用配置文件,这些文件在通用基本容器中生成。
step_config
此设置控制用于通过 Puppet 创建 docker 配置文件的清单。以下 Puppet 标签和此清单一起使用,以便为该容器生成配置目录。

kolla_config

在容器中创建 Kolla 配置的映射。格式从配置文件的绝对路径开始,并将它用于以下子参数:

命令
容器启动时要运行的命令。
config_files
服务配置文件()和容器(st )的位置,然后再启动服务之前。另外,还包括在容器中合并或替换这些文件的选项(合并),是否要保留文件权限和其他属性(preserve_properties)。
权限
为容器上某些目录设置权限。需要 路径所有者 和组。您还可以以递归方式应用权限(递归)。

以下是 keystone 服务的 kolla_config 参数示例:

kolla_config:
  /var/lib/kolla/config_files/keystone.json:
    command: /usr/sbin/httpd -DFOREGROUND
    config_files:
      - source: "/var/lib/kolla/config_files/src/*"
        dest: "/"
        merge: true
        preserve_properties: true
  /var/lib/kolla/config_files/keystone_cron.json:
    command: /usr/sbin/crond -n
    config_files:
      - source: "/var/lib/kolla/config_files/src/*"
        dest: "/"
        merge: true
        preserve_properties: true
    permissions:
      - path: /var/log/keystone
        owner: keystone:keystone
        recurse: true

docker_config

传递给 docker-cmd hook 的数据,以便在每个步骤中配置容器。

  • step_0 - 按 hiera 设置生成的容器配置文件。
  • step_1 - Load Balancer configuration

    1. 裸机配置
    2. 容器配置
  • step_2 - Core Services (Database/Rabbit/NTP/etc.)

    1. 裸机配置
    2. 容器配置
  • step_3 - 早期 OpenStack 服务设置(Ringbuilder 等)

    1. 裸机配置
    2. 容器配置
  • step_4 - General OpenStack Services

    1. 裸机配置
    2. 容器配置
    3. Keystone 容器发布初始化(租户、服务、端点创建)
  • step_5 - 服务激活(Pacemaker)

    1. 裸机配置
    2. 容器配置

YAML 使用一组参数来定义容器容器在每个步骤中运行,以及与每个容器关联的 Docker 设置。例如:

docker_config:
  step_3:
    keystone:
      start_order: 2
      image: *keystone_image
      net: host
      privileged: false
      restart: always
      healthcheck:
        test: /openstack/healthcheck
      volumes: *keystone_volumes
      environment:
        - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS

这会创建一个 keystone 容器,并使用对应的参数来定义详细信息,包括要使用的镜像、网络类型和环境变量。

docker_puppet_tasks

提供直接驱动 docker-puppet.py 工具的数据。该任务仅在集群内(不能在各个节点上)内执行一次,对于初始化 keystone 端点和数据库用户等内容所需的多个 Puppet 代码片段来说也很有用。例如:

docker_puppet_tasks:
  # Keystone endpoint creation occurs only on single node
  step_3:
    config_volume: 'keystone_init_tasks'
    puppet_tags: 'keystone_config,keystone_domain_config,keystone_endpoint,keystone_identity_provider,keystone_paste_ini,keystone_role,keystone_service,keystone_tenant,keystone_user,keystone_user_role,keystone_domain'
    step_config: 'include ::tripleo::profile::base::keystone'
    config_image: *keystone_config_image

host_prep_tasks

这是一个 ansible 代码片段,可在节点主机上执行,为容器化服务准备它。例如,您可能需要在创建期间挂载容器中的特定目录。

fast_forward_upgrade_tasks

Ansible 代码片段,帮助进行快进的升级过程。此片段添加到组合的 playbook 中。每个操作都使用标签来定义 步骤和 发行版本

这些步骤 通常遵循以下阶段:

  • step=0 - Check running services
  • step=1 - 停止服务
  • step=2 - 停止集群
  • step=3 - Update repositories
  • step=4 - Database backups
  • step=5 - Pre-package update commands
  • step=6 - Package updates
  • 第=7 步 - Post-package 更新命令
  • step=8 - Database updates
  • step=9 - Verification

标签 与一个发行版本对应:

  • tag=ocata - OpenStack Platform 11
  • tag=pike - OpenStack Platform 12
  • tag=queens - OpenStack Platform 13
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.