使用 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>/config.yaml
文件。 -
添加或修改参数和值。 用于定义参数和值的格式为
<parameter_name>:<value>
。- 表 1. 通用设置
- 表 2. Kubernetes 设置
- 表 3. 日志设置
- 表 4. 网络设置
- 表 5. Docker 设置
- 表 6. 代理 HA 设置
- 表 7. 主 HA 设置
- 表 8. 用户设置
- 表 9. GlusterFS 设置
- 表 10. vSphere Cloud Provider 设置
- 表 11. AWS Cloud Provider 设置
- 表 12. 使用 IPsec 加密集群数据网络流量
- 表 13. 漏洞顾问程序设置
- 表 14. 将 VMware NSX-T 2.2 与 IBM Cloud Private 进行集成
- 表 15. 环境隔离
常规设置
参数 | 描述 | 缺省值 |
---|---|---|
cluster_name |
集群的名称。
在多集群环境中,请为每个集群指定不同的名称。
|
mycluster |
cluster_CA_domain |
指定要在集群中使用的认证中心 (CA) 域。 | {{ cluster_name }}.icp |
cluster_domain |
Kubernetes 内部 DNS 域名。 | cluster.local |
offline_pkg_copy_path |
用于在离线安装过程中保存临时安装文件的目录。 此位置必须至少具有 30 GB 的可用磁盘空间。
如果 |
/tmp |
tiller_http_proxy tiller_https_proxy |
此参数允许访问在防火墙后运行的环境中或无权访问因特网的环境中的 IBM Cloud Private 目录。 要启用对 IBM 公共 Helm 存储库的访问,请在安装集群之前设置此参数。 接受的值:
|
无 |
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。 |
|
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 设置
参数 | 描述 | 缺省值 |
---|---|---|
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 |
日志设置
参数 | 描述 | 值 | 缺省值 |
---|---|---|---|
metrics_max_age |
设置存储系统和应用程序指标的最大天数。 系统会移除早于此指定天数的指标。 移除指标的时间为指定日期的 23:59。 | 天数 | 1 |
kibana_install |
设置为 true 时,安装程序会部署 Kibana,并将其与 IBM Cloud Private management console进行集成。 | true 或 false |
false |
网络设置
参数 | 描述 | 值 | 缺省值 |
---|---|---|---|
calico_ipip_enabled |
允许 Calico 以 IP over IP 模式运行。 当工作程序节点位于不同子网中且未在这些工作程序节点之间的路由器中启用 BGP 时,需要该设置。 在不允许虚拟机充当路由器的某些云环境(例如 OpenStack)中也需要此设置。 | true 或 false |
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。 |
|
无 |
proxy_lb_address |
在具有多个网络接口 (NIC) 的环境中,使用 proxy_lb_address 设置 NodePort 资源要用于允许对服务进行外部访问的公共或外部 IP 地址。 您可以指定标准域名,而不是 IP 地址。 |
|
无 |
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。 这些服务 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 包。
参数 | 描述 | 格式 | 缺省值 |
---|---|---|---|
docker_version |
指定要安装的 Docker 版本。
必须在 |
字符串 | 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 设置
参数 | 描述 | 值 | 缺省值 |
---|---|---|---|
vip_manager |
管理主节点、代理节点或主节点和代理节点上的虚拟 IP (VIP) 的服务。 如果为主节点或代理节点配置 HA,那么可以设置此值。 您只设置一次此值。 |
|
etcd |
proxy_vip_iface |
为代理节点 HA 环境设置虚拟 IP 接口。 | eth0 |
不适用 |
proxy_vip |
为代理节点 HA 环境设置虚拟 IP 地址。 | 172.16.12.123 请不要在 IP 地址中指定子网。 |
不适用 |
主 HA 设置
参数 | 描述 | 值 | 缺省值 |
---|---|---|---|
vip_manager |
管理主节点、代理节点或主节点和代理节点上的虚拟 IP (VIP) 的服务。 如果为主节点或代理节点配置 HA,那么可以设置此值。 您只设置一次此值。 |
|
etcd |
cluster_vip |
为 IBM Cloud Private HA 环境设置虚拟 IP 地址。 | 172.16.12.123 请不要在 IP 地址中指定子网。 |
不适用 |
vip_iface |
为 IBM Cloud Private HA 环境设置虚拟 IP 接口。 | eth0 |
不适用 |
用户设置
参数 | 描述 |
---|---|
ansible_user ansible_ssh_pass ansible_become ansible_port ansible_become_pass |
在安装过程中,IBM Cloud Private 使用 ansible_user 和 ansible_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 设置
参数 | 描述 |
---|---|
glusterfs |
在专用节点上供应存储器。
要设置 GlusterFS,您必须设置多个参数。 请参阅在 IBM Cloud Private 安装期间配置 GlusterFS。 |
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,您需要设置两个参数: 有关在 Amazon Web Services (AWS) 云平台上设置 |
IBM Cloud Private-CE (Community Edition) 的更多详细信息,请参阅在 Amazon Web Services (AWS) 云平台上运行 IBM Cloud Private 。
使用 IPsec 加密集群数据网络流量
参数 | 描述 |
---|---|
ipsec_mesh |
|
enable: true |
启用 IPsec。
要设置 IPsec,您必须设置多个参数。 请参阅使用 IPsec 加密集群数据网络流量。 |
漏洞顾问程序设置
参数 | 描述 | 缺省值 |
---|---|---|
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 集成
参数 | 描述 |
---|---|
network_type |
nsx-t |
nsx_t |
必须设置多个参数,才能将 VMware NSX-T 2.2 与 IBM Cloud Private 进行集成。 请参阅将 VMware NSX-T 2.2 与 IBM Cloud Private 进行集成。 |
环境隔离
参数 | 描述 |
---|---|
isolated_namespaces: [] |
如果要隔离名称空间,请使用此参数。 添加名称空间,并向此名称空间分配具有专用工作程序节点的主机组。 语法为 {namespace:hostgroup} 。 例如,[{production:prod}, {devops:dev}] 。 名称空间是在 IBM Cloud Private 安装期间创建的。 |
isolated_proxies: [] |
如果要向名称空间分配代理节点主机组,请使用此参数。 添加名称空间,并向此名称空间分配具有专用代理节点的主机组。 语法为 {namespace:hostgroup} 。 例如,[{production:prod}, {proxydevops:dev}] 。 如果要指定 isolated_namespaces 参数中未定义的名称空间,必须在安装 IBM Cloud Private 后手动创建此名称空间。 |