使用 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>/config.yaml 文件。
  2. 添加或修改参数和值。 用于定义参数和值的格式为 <parameter_name>:<value>

常规设置

表 1. 通用设置
参数 描述 缺省值
cluster_name 集群的名称。

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

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

mycluster
cluster_CA_domain 指定要在集群中使用的认证中心 (CA) 域。 {{ cluster_name }}.icp
cluster_domain Kubernetes 内部 DNS 域名。 cluster.local
offline_pkg_copy_path 用于在离线安装过程中保存临时安装文件的目录。 此位置必须至少具有 30 GB 的可用磁盘空间。

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

/tmp
tiller_http_proxy
tiller_https_proxy
此参数允许访问在防火墙后运行的环境中或无权访问因特网的环境中的 IBM Cloud Private 目录。
要启用对 IBM 公共 Helm 存储库的访问,请在安装集群之前设置此参数。
接受的值:
  • 标准 HTTP 代理 URL,例如,http://123.4.5.6:3128
  • 标准 HTTPS 代理 URL,例如,https://123.4.5.6:3129
firewall_enabled 将此参数设置为 true 可允许在已启用防火墙的环境中安装 IBM Cloud Private 集群。 false
docker_api_timeout 设置 docker-py 启动容器的最长等待时间。 100 秒
wait_for_timeout 此参数用于指定操作的缺省超时值。 设置为 3600 可适用于大多数环境。
management_services 使用此参数可禁用管理服务。 您可禁用下列服务:custom-metrics-adapter、image-security-enforcement、istio、metering、monitoring、service-catalog、storage-minio、storage-glusterfs 和 vulnerability-advisor。

istio: disabled

vulnerability-advisor: disabled

storage-glusterfs: disabled

storage-minio: 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

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

日志设置

表 3. 日志设置
参数 描述 缺省值
metrics_max_age 设置存储系统和应用程序指标的最大天数。 系统会移除早于此指定天数的指标。 移除指标的时间为指定日期的 23:59。 天数 1
kibana_install 设置为 true 时,安装程序会部署 Kibana,并将其与 IBM Cloud Private management console进行集成。 truefalse false

网络设置

表 4. 网络设置
参数 描述 缺省值
calico_ipip_enabled 允许 Calico 以 IP over IP 模式运行。 当工作程序节点位于不同子网中且未在这些工作程序节点之间的路由器中启用 BGP 时,需要该设置。 在不允许虚拟机充当路由器的某些云环境(例如 OpenStack)中也需要此设置。 truefalse true
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
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 地址
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.15/24 - 此 IP 范围是缺省的 vagrant/virtualbox NAT 接口地址范围。
    • 92.168.122.* - 此 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。 这些服务 IP 可以不是可路由的 IP,因为 kube-proxy 会在流量离开节点之前将服务 IP 转换为 Pod IP。 在创建 service_cluster_ip_range 时,确保您选择的 IP 范围不会与现有主机网络或 network_cidr 冲突。service_cluster_ip_range 是虚拟网络。 在大多数环境中,您可以保留缺省值。
    集群安装后您还可以扩展服务集群 IP 范围,请参阅扩展服务 IP 范围
    采用 CIDR 格式的 IP 地址 10.0.0.1/24

    Docker 设置

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

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

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

    字符串 18.03.1
    install_docker 允许安装程序在集群节点上自动安装 Docker。 true 或 false true
    docker_env 为 Docker 设置环境。 例如,如果 Docker 在防火墙后运行,那么您可以配置 https_proxy 位置。 环境位置存储在 /etc/systemd/system/docker.service.d/docker-env-icp.conf 文件中。 "HTTP_PROXY=http://httphost:port/", "NO_PROXY=localhost,127.0.0.1"
    docker_config 设置 Docker 配置参数。 有关 Docker 配置参数的更多信息,请参阅 dockerd 在新选项卡中打开 docker_config:
         log-opts:
            max-size: "50m
            max-file: "10"
         storage-driver: devicemapper

    代理 HA 设置

    表 6. 代理 HA 设置
    参数 描述 缺省值
    vip_manager 管理主节点、代理节点或主节点和代理节点上的虚拟 IP (VIP) 的服务。 如果为主节点或代理节点配置 HA,那么可以设置此值。 您只设置一次此值。
    • ucarp
    • etcd
    • keepalived
    etcd
    proxy_vip_iface 为代理节点 HA 环境设置虚拟 IP 接口。 eth0 不适用
    proxy_vip 为代理节点 HA 环境设置虚拟 IP 地址。 172.16.12.123
    请不要在 IP 地址中指定子网。
    不适用

    主 HA 设置

    表 7. 主 HA 设置
    参数 描述 缺省值
    vip_manager 管理主节点、代理节点或主节点和代理节点上的虚拟 IP (VIP) 的服务。 如果为主节点或代理节点配置 HA,那么可以设置此值。 您只设置一次此值。
    • ucarp
    • etcd
    • keepalived
    etcd
    cluster_vip 为 IBM Cloud Private HA 环境设置虚拟 IP 地址。 172.16.12.123
    请不要在 IP 地址中指定子网。
    不适用
    vip_iface 为 IBM Cloud Private HA 环境设置虚拟 IP 接口。 eth0 不适用

    用户设置

    表 8. 用户设置
    参数 描述
    ansible_user
    ansible_ssh_pass
    ansible_become
    ansible_port
    ansible_become_pass
    在安装过程中,IBM Cloud Private 使用 ansible_useransible_ssh_pass 参数值来访问您的集群节点。
    如果您使用具有 sudo 权限的非管理员帐户连接到主节点或工作程序节点,请将 ansible_user 设置为用户名,并将 ansible_become 设置为 true
    如果使用密码运行 sudo,那么必须将 ansible_become_pass 参数设置为非 root(sudo 用户)密码的值。 如果在 /etc/sudoers 文件中设置 NOPASSWD,那么该变量为可选变量。
    如果具有定制的 ssh 端口,那么还可以在 <installation_directory/cluster/hosts 文件中设置 ansible_port 参数。
    要配置这些参数值,请参阅为集群节点配置密码认证
    default_admin_user 设置定制的集群管理员用户名。 缺省值为 admin。 如果启用了 LDAP,并且您具有用户名为 admin 的 LDAP 用户,请将 default_admin_user 参数值更改为其他值,以避免集群管理员名称与 LDAP 用户名冲突。
    default_admin_password 设置定制的集群管理员密码。 缺省值为 admin。 如果启用了 LDAP,那么该参数用于设置 LDAP 管理员密码。

    GlusterFS 设置

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

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

    vSphere Cloud Provider 设置

    表 10. vSphere Cloud Provider 设置
    参数 描述
    cloud_provider 设置 vSphere Cloud Provider。

    要设置 vSphere Cloud Provider,您必须设置多个参数。 请参阅配置 vSphere Cloud Provider

    AWS Cloud Provider 设置

    参数 描述
    cloud_provider 设置 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
    enable: true 启用 IPsec。

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

    漏洞顾问程序设置

    参数 描述 缺省值
    management_services 缺省情况下,漏洞顾问程序处于禁用状态。

    要启用漏洞顾问程序,请在 management_services 部分中设置 vulnerability-advisor: enabled
    management_services:

    istio: disabled vulnerability-advisor: disabled storage-glusterfs: disabled storage-minio: disabled | | va_api_server_nodePort|漏洞顾问程序 API 服务 NodePort。 如果它与现有服务冲突,请更改缺省值。| 30610| | va_crawler_enabled|指定是否为集群中的漏洞顾问程序启用搜寻器。

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

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

    环境隔离

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