Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

4.2. 配置集群变量

要在 Ansible 安装过程中分配全局集群环境变量,请将它们添加到 /etc/ansible/hosts 文件的 [OSEv3:vars] 部分。您必须将每个参数值放在单独的行中。例如:

[OSEv3:vars]

openshift_master_identity_providers=[{'name': 'htpasswd_auth',
'login': 'true', 'challenge': 'true',
'kind': 'HTPasswdPasswordIdentityProvider',}]

openshift_master_default_subdomain=apps.test.example.com
重要

如果 Ansible 清单文件中的参数值包含特殊字符,如 #{},则需要双重转义(以单引号和双引号包括该值)。例如,要将 mypasswordwith###hashsigns 作为变量 openshift_cloudprovider_openstack_password 的值,在 Ansible 主机清单文件中将其声明为 openshift_cloudprovider_openstack_password='"mypasswordwith###hashsigns"'

下表描述了与 Ansible 安装程序搭配使用的全局集群变量:

表 4.1. 常规集群变量

变量用途

ansible_ssh_user

这个变量为安装程序设定要使用的 SSH 用户,默认为 root 用户。此用户必须在 不需要密码的情况下允许基于 SSH 的身份验证。如果使用基于 SSH 密钥的身份验证,则密钥必须由 SSH 代理管理。

ansible_become

如果 ansible_ssh_user 不是 root,则此变量必须设为 true,且必须为此用户配置无需密码的 sudo

debug_level

这个变量设定了将哪些 INFO 信息记录到 systemd-journald.service。设置以下内容之一:

  • 0 只记录错误(error)和警告(warning)信息
  • 2 记录普通信息(这是默认级别)
  • 4 记录调试级别信息
  • 6 记录 API 级调试信息(request / response)
  • 8 记录 body 级 API 调试信息

如需有关 debug 日志级别的更多信息,请参阅 配置日志记录级别

openshift_clock_enabled

是否在集群节点上启用网络时间协议(NTP)。默认值为 true

如果安装了 chrony 软件包,则会将其配置为提供 NTP 服务。如果没有安装 chrony 软件包,安装 playbook 会安装和配置 ntp 软件包以提供 NTP 服务。

重要

要防止集群中的 master 和节点不同步,请不要更改此参数的默认值。

openshift_master_admission_plugin_config

此变量根据清单主机文件中的要求设置参数和任意 JSON 值。例如:

openshift_master_admission_plugin_config={"ClusterResourceOverride":{"configuration":{"apiVersion":"v1","kind":"ClusterResourceOverrideConfig","memoryRequestToLimitPercent":"25","cpuRequestToLimitPercent":"25","limitCPUToMemoryPercent":"200"}}}

在这个值中,openshift_master_admission_plugin_config={"openshift.io/ImagePolicy":{"configuration":{"apiVersion":"v1","executionRules":[{"matchImageAnnotations":[{"key":"images.openshift.io/deny-execution","value":"true"}],"name":"execution-denied","onResources":[{"resource":"pods"},{"resource":"builds"}],"reject":true,"skipOnResolutionFailure":true}],"kind":"ImagePolicyConfig"}}} 是默认的参数值。

重要

即使要添加自定义设置,也需要包含默认的 openshift_master_admission_plugin_config 值。

openshift_master_audit_config

此变量启用 API 服务审计。如需更多信息,请参阅 审计配置

openshift_master_audit_policyfile

提供审计策略文件的位置。如需更多信息,请参阅 审计策略配置

openshift_master_cluster_hostname

此变量覆盖集群的主机名,默认为 master 的主机名。

openshift_master_cluster_public_hostname

此变量覆盖集群的公共主机名,默认为 master 的主机名。如果您使用外部负载均衡器,指定外部负载均衡器的地址。

例如:

openshift_master_cluster_public_hostname=openshift-ansible.public.example.com

openshift_master_cluster_method

可选。此变量定义了部署多个 master 时的 HA 方法。支持 native 方法。如需更多信息,请参阅多 Master

openshift_rolling_restart_mode

此变量会在 直接运行升级 playbook 时启用 HA master 的滚动重启(例如,每次只会有一个 masters 停机)。默认为 services,它允许在 master 上滚动重启服务。可将其设定为 system,这样可启用滚动、完全重启 master 节点。

在升级过程中,可能会需要滚动重启 master,以使用提供的 Ansible hook 应用其他更改。根据您选择执行的任务而定,您可能想重启主机来重启您的服务。

openshift_master_identity_providers

此变量设置 身份提供程序。默认值为 Deny All。如果使用受支持的身份提供程序,请配置 OpenShift Container Platform 来使用它。您可以配置多个身份提供程序。

openshift_master_named_certificates

这些变量用于配置部署在安装过程中的 自定义证书。如需更多信息,请参阅配置自定义证书

openshift_master_overwrite_named_certificates

openshift_hosted_router_certificate

为托管路由器提供自定义证书的位置。

openshift_master_ca_certificate

提供为 OpenShift Container Platform 证书签名的单个证书和密钥。请参阅 重新部署新的或自定义 OpenShift Container Platform CA

openshift_additional_ca

如果 openshift_master_ca_certificate 参数的证书由中间证书签名,请提供包含 CA 中间证书和 root 证书链的捆绑证书。请参阅 重新部署新的或自定义 OpenShift Container Platform CA

openshift_redeploy_service_signer

如果 参数设置为 false,则运行 openshift-master/redeploy-certificates.yml playbook 时不会重新部署 signer。默认值为 true

openshift_hosted_registry_cert_expire_days

自动生成的 registry 证书的有效性。(以天为单位)默认为 730 (2 年)。

openshift_ca_cert_expire_days

自动生成的 CA 证书的有效期(以天为单位)。默认值为 1825 (5 年)。

openshift_master_cert_expire_days

自动生成的 master 证书的有效期。(以天为单位)默认为 730 (2 年)。

etcd_ca_default_days

自动生成的外部 etcd 证书的有效性。(以天为单位)控制 etcd CA、peer、服务器和客户端证书的有效性。默认值为 1825 (5 年)。

openshift_certificate_expiry_warning_days

停止在这个天数内或更短的时间内过期的集群进行升级。默认值为 365 (1 年)。

openshift_certificate_expiry_fail_on_warn

自动生成的证书在 openshift_certificate_expiry_warning_days 参数指定的期间无效时,升级是否失败。默认值为 True

os_firewall_use_firewalld

设置为 true 来使用 firewalld 而不是默认的 iptables。在 RHEL Atomic Host 上不可用。如需更多信息,请参阅配置防火墙部分。

openshift_master_session_name

这些变量覆盖 OAuth 配置中的 会话选项 的默认设置。如需更多信息,请参阅配置会话选项

openshift_master_session_max_seconds

openshift_master_session_auth_secrets

openshift_master_session_encryption_secrets

openshift_master_image_policy_config

在 master 配置中设置 imagePolicyConfig。详情请参阅 镜像配置

openshift_router_selector

自动部署路由器 Pod 的默认节点选择器。有关详细信息,请参阅配置节点主机标签

openshift_registry_selector

用于自动部署 registry Pod 的默认节点选择器。有关详细信息,请参阅配置节点主机标签

openshift_template_service_broker_namespaces

此变量通过指定由代理提供模板的一个或多个命名空间来启用模板服务代理。

openshift_master_bootstrap_auto_approve

此变量启用 TLS bootstrapping 自动批准,它允许节点在提供 bootstrap 凭证时自动加入集群。如果将在 Amazon Web Services(AWS)集群上启用cluster auto-scaler,则设置为 true。默认值为 false

ansible_service_broker_node_selector

用于自动部署 Ansible 服务代理 Pod 的默认节点选择器,默认为 {"node-role.kubernetes.io/infra":"true"}。有关详细信息,请参阅配置节点主机标签

osm_default_node_selector

此变量覆盖了项目在放置 pod 时默认使用的节点选择器,这由主配置文件中的 projectConfig.defaultNodeSelector 定义。如果未定义,则默认为 node-role.kubernetes.io/compute=true

openshift_docker_additional_registries

OpenShift Container Platform 将指定的额外 registry 或 registry 添加到 docker 配置中。这些是要搜索的 registry。如果 registry 需要访问 80 以外的端口,以 <address>:<port> 的形式包括所需的端口号。

例如:

openshift_docker_additional_registries=example.com:443
注意

如果需要将集群配置为使用备用 registry,设置 oreg_url 而不是依赖于 openshift_docker_additional_registries

openshift_docker_insecure_registries

OpenShift Container Platform 将指定的额外不安全的 registry 添加到 docker 配置中。对于这些 registry,无法验证安全套接字层(SSL)。可以设置为主机的主机名或 IP 地址。0.0.0.0/0 不是 IP 地址的有效设置。

openshift_docker_blocked_registries

OpenShift Container Platform 将指定的受阻 registry 添加到 docker 配置中。阻止列出的 registry。把它设置为 all 会阻止没有包括在其他变量中的所有项。

openshift_docker_ent_reg

openshift_deployment_type 设置为 openshift-enterprise 时,容器运行时信任的额外 registry 。默认为 registry.redhat.io。如果设置 openshift_docker_ent_reg='',则 registry.redhat.io 不会被添加到 docker 配置中。

openshift_metrics_hawkular_hostname

此变量通过覆盖集群指标主配置中的 metricsPublicURL 来设置与指标控制台集成的主机名。如果更改了这个变量,请确保主机名可以通过路由器访问。

openshift_clusterid

此变量是 AWS Availability Zone 中唯一的集群标识符。使用这个功能可避免在带有多个区或多个集群的 Amazon Web Services(AWS)中的潜在问题。如需了解详细信息,请参阅 为 AWS 标记集群

openshift_encryption_config

使用此变量配置数据存储层加密。

openshift_image_tag

使用此变量指定要安装或配置的容器镜像标签。

openshift_pkg_version

使用这个变量指定 RPM 版本来安装或配置。

警告

如果在集群设置后修改 openshift_image_tagopenshift_pkg_version 变量,则可能会触发升级过程,从而导致停机。

  • 如果设置了 openshift_image_tag,则其值将用于系统容器中的所有主机,包括安装了另一个版本的主机。如果
  • 设定了openshift_pkg_version,其值用于基于 RPM 的环境中的所有主机,包括安装了另一个版本的主机。

表 4.2. 网络变量

变量用途

openshift_master_default_subdomain

此变量覆盖用于公开 路由 的默认子域。此变量的值必须包含小写字母数字字符或横线(-)。它必须以字母字符开头,并以字母数字字符结尾。

os_sdn_network_plugin_name

此变量配置了将哪些 OpenShift SDN 插件 用于 pod 网络。对于标准 SDN 插件,默认为 redhat/openshift-ovs-subnet。将变量设置为 redhat/openshift-ovs-multitenant 以使用多租户 SDN 插件。

osm_cluster_network_cidr

此变量覆盖 SDN 集群网络 CIDR 块。这是分配 Pod IP 的网络。指定与基础架构中现有网络块没有冲突的私有块,pod、节点或 master 需要访问它。默认为 10.128.0.0/14,且在部署后无法任意重新配置,但可在 SDN master 配置中进行某些更改。

openshift_portal_net

此变量配置子网,services 会在 OpenShift Container Platform SDN 的这个子网中创建。指定与基础架构中任何现有网络块没有冲突的私有块, pod、节点或 master 需要可以访问它,否则安装会失败。默认为 172.30.0.0/16,部署后无法重新配置。如果改变默认的值,需要避免使用 172.17.0.0/16(因为 docker0 网桥会默认使用它)或修改 docker0 网络。

osm_host_subnet_length

此变量指定 OpenShift Container Platform SDN 为 pod IP 分配的每个主机子网的大小。默认为 9,表示每个主机分配了 /23 大小的子网 ; 例如,如果默认为 10.128.0.0/14 集群网络,则会分配 10.128.0.0/23、10.128.2.0/23、10.128.4.0/23 等。这在部署后无法重新配置。

openshift_node_proxy_mode

这个变量指定要使用的 服务代理模式:默认为 iptables(纯 iptables 的实施),或 userspace 用于用户空间代理。

openshift_use_flannel

这个变量启用 flannel 作为替代网络层而不是默认的 SDN。如果启用 flannel,则使用 openshift_use_openshift_sdn 变量禁用默认 SDN。如需更多信息,请参阅 使用 Flannel

openshift_use_openshift_sdn

设置为 false 以禁用 OpenShift SDN 插件。

openshift_sdn_vxlan_port

此变量设置 cluster 网络vxlan 端口。默认为 4789。如需更多信息请参阅为集群网络更改 VXLAN PORT

openshift_node_sdn_mtu

此变量指定用于 OpenShift SDN 的 MTU 大小。该值必须小于节点的主网络接口的 MTU 50 字节。例如,如果主网络接口的 MTU 为 1500,则这个值将是 1450。默认值为 1450