使用 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 文件来设置或更新下列参数。
- 打开
/<installation_directory>/cluster/config.yaml文件中添加)自动创建的。 -
添加或修改参数和值。 用于定义参数和值的格式为
<parameter_name>:<value>。- 表 1. 通用设置
- 表 2. Kubernetes 设置
- 表 3. 日志设置
- 表 4. 网络设置
- 表 5. 集群访问设置
- 表 6. Docker 设置
- 表 7. 代理 HA 设置
- 表 8. 主 HA 设置
- 表 9. 用户设置
- 表 10. GlusterFS 设置
- 表 11. Cloud Provider 设置
- 表 12. 使用 IPsec 加密集群数据网络流量
- 表 13. 管理服务设置
- 表 14. 将 VMware NSX-T 2.3 与 IBM Cloud Private 集成
- 表 15. 环境隔离
- 表 16. etcd 设置
- 表 17. Istio 附加组件安全设置
- 表 18. NGINX 入口控制器
- 表 19. Minio 设置
常规设置
| 参数 | 描述 | 缺省值 |
|---|---|---|
offline_pkg_copy_path |
用于在离线安装过程中保存临时安装文件的目录。 此位置必须至少具有 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。 |
|
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 设置
| 参数 | 描述 | 缺省值 | |
|---|---|---|---|
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 |
日志设置
| 参数 | 描述 | 值 | 缺省值 |
|---|---|---|---|
metrics_max_age |
设置存储系统和应用程序指标的最大天数。 系统会移除早于此指定天数的指标。 移除指标的时间为指定日期的 23:59。 | 天数 | 1 |
logs_maxage |
设置在 Elasticsearch 中存储日志的最大天数。 | 天数 | 1 |
网络设置
| 参数 | 描述 | 值 | 缺省值 |
|---|---|---|---|
network_type |
集群中网络管理的类型。 | calico 或 nsx-t |
calico |
network_helm_chart_path |
网络 Helm Chart 的绝对路径。 | 无 | 无 |
calico_ipip_mode |
允许 Calico 以 IP over IP 模式运行。 当工作程序节点位于不同子网中且未在这些工作程序节点之间的路由器中启用 BGP 时,需要该设置。 在不允许虚拟机充当路由器的某些云环境(例如 OpenStack)中也需要此设置。 |
|
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: can-reach=<remote IP address or host name>:can-reach 方法使用局部路由来确定用于访问指定目标的 IP 地址。 该参数接受远程 IP 地址或域名作为值。 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.*"。
|
|
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 |
集群访问设置
| 参数 | 描述 | 值 | 缺省值 |
|---|---|---|---|
cluster_name |
集群的名称。
在多集群环境中,请为每个集群指定不同的名称。
注:安装 IBM Multicloud Manager 后,您的活动 |
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。 |
|
无 |
proxy_lb_address |
在具有多个网络接口 (NIC) 的环境中,使用 proxy_lb_address 设置 NodePort 资源要用于允许对服务进行外部访问的公共或外部 IP 地址。 您可以指定标准域名,而不是 IP 地址。 |
|
无 |
Docker 设置
注:只能对提供的 IBM Cloud Private Docker 包设置这些配置。 请参阅IBM Cloud Private Docker 包。
| 参数 | 描述 | 格式 | 缺省值 |
|---|---|---|---|
docker_version |
指定要安装的 Docker 版本。
必须在 |
/<installation_directory>/cluster/runtime-engine 目录中提供所需版本的软件包。
代理 HA 设置
| 参数 | 描述 | 值 | 缺省值 |
|---|---|---|---|
proxy_vip_iface |
为代理节点 HA 环境设置虚拟 IP 接口。 | eth0 |
不适用 |
proxy_vip |
为代理节点 HA 环境设置虚拟 IP 地址。 | 127.0.1.1 请不要在 IP 地址中指定子网。 |
不适用 |
主 HA 设置
| 参数 | 描述 | 值 | 缺省值 |
|---|---|---|---|
cluster_vip |
为 IBM Cloud Private HA 环境设置虚拟 IP 地址。 | 127.0.1.1 请不要在 IP 地址中指定子网。 |
不适用 |
vip_iface |
为 IBM Cloud Private HA 环境设置虚拟 IP 接口。 | eth0 |
不适用 |
用户设置
| 参数 | 描述 |
|---|---|
ansible_useransible_ssh_passansible_become ansible_portansible_become_password |
在安装过程中,IBM Cloud Private 使用 ansible_user 和 ansible_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 设置
| 参数 | 描述 |
|---|---|
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 安装期间,在 |
aws |
AWS Cloud Provide 设置 设置 AWS Cloud Provider。要设置 AWS Cloud Provider,您需要设置两个参数: 有关在 Amazon Web Services (AWS) 云平台上设置 |
IBM Cloud Private-CE (Community Edition) 的更多详细信息,请参阅在 Amazon Web Services (AWS) 云平台上运行 IBM Cloud Private 。
使用 IPsec 加密集群数据网络流量
| 参数 | 描述 |
|---|---|
ipsec_mesh: |
启用 IPsec。
要设置 IPsec,您必须设置多个参数。 请参阅使用 IPsec 加密集群数据网络流量。 |
管理服务设置
| 参数 | 描述 | 缺省值 |
|---|---|---|
management_services |
缺省情况下,禁用 istio、vulnerability-advisor、storage-glusterfs 和 storage-minio Chart。
要启用 Chart,请在 |
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 集成
| 参数 | 描述 |
|---|---|
| network_type: | 将值设置为 nsx-t。 |
nsx_t: |
必须设置多个参数,才能将 VMware NSX-T 2.3 与 IBM Cloud Private 集成。请参阅将 VMware NSX-T 2.3 与 IBM Cloud Private 集成。 |
环境隔离
| 参数 | 描述 |
|---|---|
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 设置
| 参数 | 描述 | 缺省值 |
|---|---|---|
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 附加组件安全设置
| 参数 | 描述 | 缺省值 |
|---|---|---|
istio_addon |
配置 Istio 附加组件安全设置。 | |
grafana |
配置 Grafana Istio 附加组件以查看服务网格流量数据。配置用户名和密码以访问界面。 | 无 |
kiali |
配置 Kiali Istio 附加组件以查看 Istio 服务网格中的微服务数据。配置用户名和密码以访问界面。 | 无 |
NGINX 入口控制器
| 参数 | 描述 |
|---|---|
nginx-ingress:ingress |
定制 NGINX 入口控制器配置。缺省情况下,入口控制器已启用。有关可配置参数的列表,请参阅 [Kubernetes nginx-ingress 配置选项 |
。| |
config:| | |
disable-access-log|禁用访问日志。将值设置为 true 或 false。| |
keep-alive-requests|设置通过一个保持活动状态连接可提供的请求的最大数量。例如,10000。| |
upstream-keepalive-connections|激活与上游服务器的连接的高速缓存。对于各工作程序进程高速缓存中保存的上游服务器,连接参数设置与其建立的保持活动状态的最大空闲连接数。超出此数量后,将关闭最少数量的最近已用连接。例如,64。| |
worker-processes|设置工作程序进程的数量。例如,2。| |
extraArgs:| | |
publish-status-address|指定入口控制器必须使用的地址。例如,“{{ proxy_external_address }}”。| |
enable-ssl-passthrough|将 TLS 连接直接发送到 pod,而不是允许 NGINX 对通信进行解密。将值设置为 true 或 false。|
Minio 设置
| 参数 | 描述 |
|---|---|
storage-minio |
要配置 Minio,您必须设置多个参数。请参阅在 IBM Cloud Private 安装期间配置 Minio。 |