使用 config.yaml 文件来定制集群

config.yaml 文件包含部署集群所需的所有配置设置。

config.yaml 文件中,您可以使用各种参数定制您的安装。

config.yaml 还包含安装程序在 IBM® Cloud Private-CE (Community Edition) 安装过程中从 Docker Hub 中拉取的 Docker 映像的列表。 对于 IBM Cloud Private-CE (Community Edition) 安装,您还可以在专用映像注册表中存储这些安装映像,以代替直接从 Docker Hub 中进行拉取。 如果映像存储在专用映像注册表中,请将 config.yaml 文件更新为指向专用映像注册表中的安装映像。 对于 IBM Cloud Private 安装,将注释掉这些安装程序 Docker 映像,因为已下载的安装程序软件包中提供了这些映像。

注:在您更新 config.yaml 文件的任何部分之前,请复查该部分中的内嵌注释。

您可以通过修改 config.yaml 文件来设置或更新下列参数。

  1. 打开 /<installation_directory>/cluster/config.yaml 文件中添加)自动创建的。
  2. 添加或修改参数和值。 用于定义参数和值的格式为 <parameter_name>:<value>

常规设置

表 1. 通用设置
参数 描述 缺省值
offline_pkg_copy_path 用于在离线安装过程中保存临时安装文件的目录。 此位置必须至少具有 50 GB 的可用磁盘空间。

如果 /tmp 目录中的空间少于 50 GB,必须将该参数设置为能够满足可用磁盘空间需求的位置。

/tmp
firewall_enabled 将此参数设置为 true 可允许在已启用防火墙的环境中安装 IBM Cloud Private 集群。 false
wait_for_timeout 此参数用于指定操作的缺省超时值。 设置为 3600 可适用于大多数环境。 600
management_services 使用此参数可禁用管理服务。 您可禁用下列服务:custom-metrics-adapter、image-security-enforcement、istio、metering、logging、monitoring、service-catalog、storage-minio、storage-glusterfs 和 vulnerability-advisor。

istio: disabled

vulnerability-advisor: disabled

storage-glusterfs: disabled

storage-minio: disabled

platform-security-netpols: disabled

node-problem-detector-draino: disabled

router_http_port 供 IBM Cloud Private 管理入口使用的 HTTP 端口,充当所有 IBM Cloud Private 管理服务的代理。 8080
router_https_port 供 IBM Cloud Private 管理入口使用的 HTTPS 端口,充当所有 IBM Cloud Private 管理服务的代理。 8443
ingress_http_port 供 ngnix 入口控制器使用的 HTTP 端口,充当所有用户服务的代理。 80
ingress_https_port 供 ngnix 入口控制器使用的 HTTPS 端口,充当所有用户服务的代理。 443
loopback_dns 将回送 IP 配置为 DNS 服务器。 false
fips_enabled 将此参数设置为 true 以对 IBM Cloud Private 管理入口 (management console)、NGINX 入口控制器(入口服务)、映像管理器、Docker 注册表和 WebSphere Liberty Application Server(认证管理器)启用联邦信息处理标准 (FIPS) 140-2 合规性。 false
ansible_python_interpreter 如果在集群节点中使用 python3,将此参数设置为 /usr/bin/python3 /usr/bin/python
bootstrap_token_ttl 引导程序令牌有效的持续时间。 "24h0m0s"

Kubernetes 设置

表 2. Kubernetes 设置
参数 描述 缺省值
kube_apiserver_extra_args 为 Kubernetes 设置附加 apiserver 配置。 接受一列以 --key=value 格式提供的 apiserver 参数。
kube_apiserver_secure_port 设置 Kubernetes apiserver 安全端口。 8001
kube_controller_manager_extra_args 为 Kubernetes 设置附加控制器配置。 接受一列以 --key=value 格式提供的 controller 参数。
kube_proxy_extra_args 为 Kubernetes 设置附加代理配置。 接受一列以 --key=value 格式提供的 proxy 参数。
kube_scheduler_extra_args 为 Kubernetes 设置附加调度程序配置。 接受一列以 --key=value 格式提供的 scheduler 参数。
kubelet_extra_args 为 kubelet 设置附加配置。 接受一列以 --key=value 格式提供的 kubelet 参数。 例如,要设置可以在 kubelet 上运行的最大 pod 数,请设置以下配置:kubelet_extra_args: ["--max-pods=110"]
auditlog_enabled 启用 Kubernetes 审计日志,该日志按时间顺序记录各个用户、管理员或修改系统的其他系统组件的活动序列。 将该参数设置为 true 可启用审计日志。 false
journal_path 设置缺省路径以存储审计日志数据。 目录的路径。 /run/log/journal

日志设置

表 3. 日志设置
参数 描述 缺省值
metrics_max_age 设置存储系统和应用程序指标的最大天数。 系统会移除早于此指定天数的指标。 移除指标的时间为指定日期的 23:59。 天数 1
logs_maxage 设置在 Elasticsearch 中存储日志的最大天数。 天数 1

网络设置

表 4. 网络设置
参数 描述 缺省值
network_type 集群中网络管理的类型。 caliconsx-t calico
network_helm_chart_path 网络 Helm Chart 的绝对路径。
calico_ipip_mode 允许 Calico 以 IP over IP 模式运行。 当工作程序节点位于不同子网中且未在这些工作程序节点之间的路由器中启用 BGP 时,需要该设置。 在不允许虚拟机充当路由器的某些云环境(例如 OpenStack)中也需要此设置。
  • Always:在集群节点之间创建 IP 隧道网格中的 IP 以进行 Pod 到 Pod 通信。
  • Never:在集群节点之间未创建 IP 隧道网格中的 IP 以进行 Pod 到 Pod 通信。
  • CrossSubnet:针对不同子网中的节点创建 IP 隧道网格中的 IP。
Always
calico_tunnel_mtu Calico IPIP 的缺省 MTU 是 1430。 如果主机的主接口的 MTU 小于 1450,那么表示 Calico IPIP 的性能较差。 设置 MTU,以使主机主接口的 MTU 减去 Calico IPIP 隧道缺省 MTU 的值大于等于 20。 正整数 1430
network_cidr 要用于整个网络的 IPv4 网络。 该值必须采用 CIDR 格式。 在创建 network_cidr 时,确保您选择的 IP 范围不会与现有主机网络或 service_cluster_ip_range 冲突。 在大多数环境中,可以使用缺省值。 采用 CIDR 格式的 IP 地址 10.1.0.0/16
calico_ip_autodetection_method 您可以将 Calico 节点配置为自动检测用于在节点之间进行路由的 IP 地址。 可以使用以下方法之一:
  • calico_ip_autodetection_method: first-found:该方法使用最先找到的有效接口上的第一个有效 IP 地址。
  • calico_ip_autodetection_method: interface:该参数接受一列以逗号分隔的正则表达式名称作为值。 它使用指定接口上找到的第一个 IP 地址。
示例:
  • calico_ip_autodetection_method: interface=eth0
  • calico_ip_autodetection_method: interface=eth.*
  • calico_ip_autodetection_method: interface=eth.*,ens.*
  • calico_ip_autodetection_method: can-reach=<remote IP address or host name>can-reach 方法使用局部路由来确定用于访问指定目标的 IP 地址。 该参数接受远程 IP 地址或域名作为值。
  • 注:
  • 在具有多个网络接口 (NIC) 的环境中,使用 can-reach 方法指定要用于您的工作负载的网络。 在 IBM Cloud Private 中,可以设置 calico_ip_autodetection_method: can-reach=<Master node IP address>
  • 网络接口名称不得包含以下字符串:"docker.*"、"cbr.*"、"dummy.*"、"virbr.*"、"lxcbr.*"、"veth.*"、"lo"、"cali.*"、"tunl.*" 或 "flannel.*"
  • Calico 无法识别某些 IP。 确保接口的 IP 不在以下范围内:
    • 10.0.2.0/24 - 此 IP 范围是缺省的 vagrant/virtualbox NAT 接口地址范围。
    • 192.168.122.0/24 - 此 IP 范围是缺省的 libvirt VM 接口地址范围。
    • first-found

    • interface=INTERFACE-REGEX

    • can-reach=<remote IP address or domain name>

    can-reach={{ groups['master'][0] }}
    service_cluster_ip_range Kubernetes 服务集群 IP 范围。 该配置用于为服务分配一批 IP。 在创建 service_cluster_ip_range 时,确保您选择的 IP 范围不会与现有主机网络或 network_cidr 冲突。service_cluster_ip_range 是虚拟网络。 在大多数环境中,您可以保留缺省值。 采用 CIDR 格式的 IP 地址 10.0.0.0/16

    集群访问设置

    表 5. 集群访问设置
    参数 描述 缺省值
    cluster_name 集群的名称。

    在多集群环境中,请为每个集群指定不同的名称。

    cluster_name 只能包含小写字母数字字符。

    注:安装 IBM Multicloud Manager 后,您的活动 cluster_name 仅显示在 IBM Cloud 平台标题中。

    cluster_name 参数用于在资源“云资源名称”(CRN) 字段中构造 region 字段。如果未指定 cluster_name,那么将在 CRN 中使用 mycluster 的缺省值。使用此信息构造的 CRN 唯一标识资源,并且用于管理和强制实施授权。在安装集群后请勿更改此参数的值,因为此更改将破坏授权。

    NA mycluster
    cluster_CA_domain 指定要在集群中使用的认证中心 (CA) 域。 NA {{ cluster_name }}.icp
    cluster_domain Kubernetes 内部 DNS 域名。 NA cluster.local
    cluster_lb_address 在具有多个网络接口 (NIC) 的环境中,使用 cluster_lb_address 为集群中的管理服务设置公共或外部 IP 地址。 您可以指定标准域名,而不是 IP 地址。
    该公共地址分配给主节点,用于访问控制台,也用于配置 kubectl
    在 HA 环境中,cluster_lb_address 掩盖 cluster_vip 作为首要主 IP。
    • IP 地址
    • 标准域名
    • OpenStack 浮动 IP 地址
    proxy_lb_address 在具有多个网络接口 (NIC) 的环境中,使用 proxy_lb_address 设置 NodePort 资源要用于允许对服务进行外部访问的公共或外部 IP 地址。 您可以指定标准域名,而不是 IP 地址。
    • IP 地址
    • 标准域名
    • OpenStack 浮动 IP 地址

    Docker 设置

    注:只能对提供的 IBM Cloud Private Docker 包设置这些配置。 请参阅IBM Cloud Private Docker 包

    参数 描述 格式 缺省值
    docker_version 指定要安装的 Docker 版本。

    必须在

    /<installation_directory>/cluster/runtime-engine 目录中提供所需版本的软件包。

    代理 HA 设置

    表 7. 代理 HA 设置
    参数 描述 缺省值
    proxy_vip_iface 为代理节点 HA 环境设置虚拟 IP 接口。 eth0 不适用
    proxy_vip 为代理节点 HA 环境设置虚拟 IP 地址。 127.0.1.1
    请不要在 IP 地址中指定子网。
    不适用

    主 HA 设置

    表 8. 主 HA 设置
    参数 描述 缺省值
    cluster_vip 为 IBM Cloud Private HA 环境设置虚拟 IP 地址。 127.0.1.1
    请不要在 IP 地址中指定子网。
    不适用
    vip_iface 为 IBM Cloud Private HA 环境设置虚拟 IP 接口。 eth0 不适用

    用户设置

    表 9. 用户设置
    参数 描述
    ansible_user
    ansible_ssh_pass
    ansible_become
    ansible_port
    ansible_become_password
    在安装过程中,IBM Cloud Private 使用 ansible_useransible_ssh_pass 参数值来访问您的集群节点。
    如果您使用具有 sudo 权限的非管理员帐户连接到主节点或工作程序节点,请将 ansible_user 设置为用户名,并将 ansible_become 设置为 true
    如果使用密码运行 sudo,那么必须将 ansible_become_password 参数设置为非 root(sudo 用户)密码的值。如果在 /etc/sudoers 文件中设置 NOPASSWD,那么该变量为可选变量。
    如果具有定制的 ssh 端口,那么还可以在 <installation_directory/cluster/hosts 文件中设置 ansible_port 参数。缺省端口为 22
    要配置这些参数值,请参阅为集群节点配置密码认证
    default_admin_user 设置定制的集群管理员用户名。 如果启用了 LDAP,并且您具有用户名为 admin 的 LDAP 用户,请将 default_admin_user 参数值更改为其他值,以避免集群管理员名称与 LDAP 用户名冲突。
    default_admin_password 添加此参数以设置定制的缺省集群管理员密码。该密码必须满足 password_rules 中指定的所有正则表达式。如果启用了 LDAP,那么该参数用于设置 LDAP 管理员密码。
    password_rules 将一个或多个密码规则的列表定义为 default_admin_password 必须通过的正则表达式。如果未定义,那么 default_admin_password 必须符合缺省密码实施规则 '^([a-zA-Z0-9\-]{32,})$':密码的长度必须至少为 32 个字符,并且只能包含小写和大写字母数字字符及短划线。

    GlusterFS 设置

    表 10. GlusterFS 设置
    参数 描述
    storage-glusterfs 在专用节点上供应存储器。

    要设置 GlusterFS,您必须设置多个参数。 请参阅在 IBM Cloud Private 安装期间配置 GlusterFS

    Cloud Provider 设置

    参数 描述
    cloud_provider vsphere

    vSphere Cloud Provider 设置

    设置 vSphere Cloud Provider。

    要设置 vSphere Cloud Provider,您必须设置多个参数。 请参阅配置 vSphere Cloud Provider 以获取更多信息。

    注:如果计划在安装 IBM® Cloud Private 集群之后配置 vSphere Cloud Provider,请确保在 IBM® Cloud Private 安装期间,在 <installation_directory>/cluster/config.yaml 文件中设置了 kubelet_nodename: hostname

    aws

    AWS Cloud Provide 设置

    设置 AWS Cloud Provider。

    要设置 AWS Cloud Provider,您需要设置两个参数:cloud_provider 设置为 awskubelet_nodename 设置为 nodename

    有关在 Amazon Web Services (AWS) 云平台上设置

    IBM Cloud Private-CE (Community Edition) 的更多详细信息,请参阅在 Amazon Web Services (AWS) 云平台上运行 IBM Cloud Private 在新选项卡中打开

    使用 IPsec 加密集群数据网络流量

    表 12. 使用 IPsec 加密集群数据网络流量
    参数 描述
    ipsec_mesh: 启用 IPsec。

    要设置 IPsec,您必须设置多个参数。 请参阅使用 IPsec 加密集群数据网络流量

    管理服务设置

    表 13. 管理服务设置
    参数 描述 缺省值
    management_services 缺省情况下,禁用 istio、vulnerability-advisor、storage-glusterfs 和 storage-minio Chart。

    要启用 Chart,请在 management_services 部分中将其设置为已启用。

    management_services:
         istio: disabled
         vulnerability-advisor: disabled
         storage-glusterfs: disabled
         storage-minio: disabled
         platform-security-netpols: disabled
         node-problem-detector-draino: disabled

    将 VMware NSX-T 2.3 与 IBM Cloud Private 集成

    表 14. 将 VMware NSX-T 2.3 与 IBM Cloud Private 集成
    参数 描述
    network_type: 将值设置为 nsx-t
    nsx_t: 必须设置多个参数,才能将 VMware NSX-T 2.3 与 IBM Cloud Private 集成。请参阅将 VMware NSX-T 2.3 与 IBM Cloud Private 集成

    环境隔离

    表 15. 环境隔离
    参数 描述
    isolated_namespaces: [] 如果要隔离名称空间,请使用此参数。 添加名称空间,并向此名称空间分配具有专用工作程序节点的主机组。 语法为 [{namespace: <namespace_name>, hostgroup: <hostgroup_name>}]。例如,[{namespace: devops, hostgroup: dev}, {namespace: production, hostgroup: prod}]。名称空间是在 IBM Cloud Private 安装期间创建的。
    isolated_proxies: [] 如果要向名称空间分配代理节点主机组,请使用此参数。 添加名称空间,并向此名称空间分配具有专用代理节点的主机组。 语法为 [{namespace: <namespace_name>, hostgroup: <hostgroup_name>, lb_address: <load_balancer_IP_address>}]。例如,[{namespace: devops, hostgroup: proxydev, lb_address: 172.68.20.11}, {namespace: production, hostgroup: proxyprod}]。如果要指定 isolated_namespaces 参数中未定义的名称空间,必须在安装 IBM Cloud Private 后手动创建此名称空间。

    etcd 设置

    表 16. etcd 设置
    参数 描述 缺省值
    etcd_extra_args 设置附加 etcd 配置。接受一列以 --key=value 格式提供的参数。 ["--grpc-keepalive-timeout=0", "--grpc-keepalive-interval=0", "--snapshot-count=10000"]
    etcd_data_dir etcd 日志目录。例如,/var/lib/etcd /var/lib/etcd
    etcd_wal_dir etcd wal 目录。例如,/var/lib/etcd-wal。您可以将该目录设置为中央远程日志目录以进行持续记录。etcd 使用的缺省值是 --max-wals=5 /var/lib/etcd-wal

    Istio 附加组件安全设置

    表 17. Istio 附加组件安全设置
    参数 描述 缺省值
    istio_addon 配置 Istio 附加组件安全设置。
    grafana 配置 Grafana Istio 附加组件以查看服务网格流量数据。配置用户名和密码以访问界面。
    kiali 配置 Kiali Istio 附加组件以查看 Istio 服务网格中的微服务数据。配置用户名和密码以访问界面。

    NGINX 入口控制器

    参数 描述
    nginx-ingress:ingress 定制 NGINX 入口控制器配置。缺省情况下,入口控制器已启用。有关可配置参数的列表,请参阅 [Kubernetes nginx-ingress 配置选项

    在新选项卡中打开](../images/icons/launch-glyph.svg "在新选项卡中打开")。| | config:| | | disable-access-log|禁用访问日志。将值设置为 truefalse。| | keep-alive-requests|设置通过一个保持活动状态连接可提供的请求的最大数量。例如,10000。| | upstream-keepalive-connections|激活与上游服务器的连接的高速缓存。对于各工作程序进程高速缓存中保存的上游服务器,连接参数设置与其建立的保持活动状态的最大空闲连接数。超出此数量后,将关闭最少数量的最近已用连接。例如,64。| | worker-processes|设置工作程序进程的数量。例如,2。| | extraArgs:| | | publish-status-address|指定入口控制器必须使用的地址。例如,“{{ proxy_external_address }}”。| | enable-ssl-passthrough|将 TLS 连接直接发送到 pod,而不是允许 NGINX 对通信进行解密。将值设置为 truefalse。|

    Minio 设置

    表 19. Minio 设置
    参数 描述
    storage-minio 要配置 Minio,您必须设置多个参数。请参阅在 IBM Cloud Private 安装期间配置 Minio