1.2. 使用自定义设置
要创建自定义配置,请制作 /etc/microshift/ 目录中提供的 config.yaml.default 文件的副本,请将其重命名为 config.yaml。将此文件保存在 /etc/microshift/ 目录中,然后您可以在启动或重启 MicroShift 前更改预期覆盖默认值的支持的设置。
在更改任何配置设置后,重新启动 MicroShift 使其生效。当 MicroShift 启动时,config.yaml 文件是只读的。
1.2.1. 单独的重启 复制链接链接已复制到粘贴板!
可能需要单独重启 MicroShift 集群的应用程序和其他可选服务,以便在集群中应用配置更改。例如,在更改某些网络设置时,您必须停止并重启服务和应用程序 pod 以应用这些更改。如需更多信息,请参阅您要完成的任务的每个步骤。
如果您同时添加您需要的所有配置,您可以最小化系统重启。
1.2.2. MicroShift config.yaml 文件的参数和值 复制链接链接已复制到粘贴板!
下表解释了 MicroShift 配置 YAML 参数以及每个有效值:
| 字段 | 类型 | 描述 |
|---|---|---|
|
|
| 指定 API 服务器公告给集群成员的 IP 地址的字符串。默认值根据服务网络的地址计算。 |
|
|
|
在自动删除前保留日志文件的时长。 |
|
|
|
默认情况下,当 |
|
|
| 保存的日志文件总数。默认情况下,MicroShift 保留 10 个日志文件。创建过量文件时,会删除最旧的文件。可以配置这个值。 |
|
|
|
仅记录读取和写入请求的日志元数据 ;除了 OAuth 访问令牌请求外,不记录请求正文。如果没有指定此字段,则使用 |
|
|
| 使用自定义证书颁发机构定义外部生成的证书和域名。 |
|
|
| 证书的完整路径。 |
|
|
| 证书密钥的完整路径。 |
|
|
| 可选。添加显式 DNS 名称列表。允许前导通配符。如果没有提供名称,则会从证书中提取隐式名称。 |
|
|
完全限定域名(FQDN)、通配符(如 3.0. | API 服务器证书的主题备用名称。sans 表示证书保护的所有域名和 IP 地址。 |
|
|
|
日志详细程度。默认为 |
|
|
| 集群的基域。所有管理的 DNS 记录都是这个基础的子域。 |
|
|
|
默认情况下, |
|
| IP 地址、NIC 名称或多个 | 值默认为主机的整个网络。有效可配置的值是一个列表,可以是单个 IP 地址或 NIC 名称,也可以是多个 IP 地址和 NIC 名称。 |
|
|
|
显示的默认端口。可配置。有效值是 1-65535 范围内的单个唯一端口。 |
|
|
|
显示的默认端口。可配置。有效值是 1-65535 范围内的单个唯一端口。 |
|
|
|
描述如何处理跨命名空间的主机名声明。默认情况下,允许路由在命名空间间声明相同主机名的不同路径。指定 |
|
|
|
路由器状态.默认为 |
|
| 请参阅 MicroShift 低延迟指令 | kubelet 节点代理的 passthrough 配置参数。用于低延迟配置。默认值为 null。 |
|
|
|
用于扫描 |
|
| IP 地址块 |
从中分配 Pod IP 地址的 IP 地址块。IPv4 是默认网络。支持双栈条目。此字段中的第一个条目在 MicroShift 启动后是不可变的。默认范围为 |
|
| IP 地址块 |
Kubernetes 服务的虚拟 IP 地址块。服务的 IP 地址池.IPv4 是默认设置。支持双栈条目。此字段中的第一个条目在 MicroShift 启动后是不可变的。默认范围为 |
|
|
|
端口范围允许用于 |
|
|
| 节点的名称。默认值为 hostname。如果非空,则使用此字符串来识别节点,而不是主机名。此值在 MicroShift 启动后是不可变的。 |
|
| IPv4 地址 | 节点的 IPv4 地址。默认值是默认路由的 IP 地址。 |
|
| IPv6 地址 | 用于双栈配置的节点的 IPv6 地址。无法在单个堆栈中为 IPv4 或 IPv6 配置。默认值为空值或 null。 |
|
|
| 默认值为空。空值或 null 字段默认为 LVMS 部署。 |
|
|
|
默认值为 null 或空数组。null 或空数组默认为部署 |
1.2.3. 使用配置片断 复制链接链接已复制到粘贴板!
如果要配置一个或多个设置,如添加主题备用名称(SAN),您可以使用 /etc/microshift/config.d/ 配置目录来丢弃配置片断 YAML 文件。您必须重启 MicroShift 才能应用新配置。
要返回前面的值,您可以删除配置片断并重启 MicroShift。
1.2.3.1. 配置片断如何工作 复制链接链接已复制到粘贴板!
在运行时,/etc/microshift/config.d 中的 YAML 文件合并到现有的 MicroShift 配置中,无论配置是否为默认值或用户创建的 config.yaml 文件。您不需要创建 config.yaml 文件来使用配置片断。
代码片段目录中的文件按字典顺序排序,并按顺序运行。您可以对代码片段使用数字前缀,以便按您想要的顺序读取每个项。当同一参数有多个 YAML 时,最后一个读取文件具有优先权。
配置片断优先于默认值和自定义 config.yaml 配置文件。
1.2.3.2. 列出配置片断示例 复制链接链接已复制到粘贴板!
列表或数组不会被合并,它们会被覆盖。例如,您可以通过为第一个字段之后读取的同一字段创建额外的片断来替换 SAN 或 SAN 列表:
MicroShift 配置目录内容
-
/etc/microshift/config.yaml.defaultor/etc/microshift/config.yaml
MicroShift 配置片断目录内容示例
-
/etc/microshift/config.d/10-san.yaml /etc/microshift/config.d/20-san.yaml示例
10-san.yaml片断apiServer: subjectAltNames: - host1 - host2apiServer: subjectAltNames: - host1 - host2Copy to Clipboard Copied! Toggle word wrap Toggle overflow 20-san.yaml片断示例apiServer: subjectAltNames: - hostZapiServer: subjectAltNames: - hostZCopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置结果示例
apiServer: subjectAltNames: - hostZapiServer: subjectAltNames: - hostZCopy to Clipboard Copied! Toggle word wrap Toggle overflow
如果要在现有列表中添加值,您可以将其添加到现有片断中。例如,要将 hostZ 添加到现有 SAN 列表中,请编辑您已有的代码片段,而不是创建新端口:
示例 10-san.yaml 片断
apiServer:
subjectAltNames:
- host1
- host2
- hostZ
apiServer:
subjectAltNames:
- host1
- host2
- hostZ
配置结果示例
apiServer:
subjectAltNames:
- host1
- host2
- hostZ
apiServer:
subjectAltNames:
- host1
- host2
- hostZ
1.2.3.3. 对象配置片断示例 复制链接链接已复制到粘贴板!
对象合并在一起。
10-advertiseAddress.yaml 片断示例
apiServer: advertiseAddress: "microshift-example"
apiServer:
advertiseAddress: "microshift-example"
20-audit-log.yaml 片断示例
apiServer:
auditLog:
maxFileAge: 12
apiServer:
auditLog:
maxFileAge: 12
配置结果示例
apiServer:
advertiseAddress: "microshift-example"
auditLog:
maxFileAge: 12
apiServer:
advertiseAddress: "microshift-example"
auditLog:
maxFileAge: 12
1.2.3.4. 混合配置片断示例 复制链接链接已复制到粘贴板!
在本例中,advertiseAddress 和 auditLog.maxFileAge 字段的值都合并到配置中,但只有 c.com 和 d.com subjectAltNames 值会被保留,因为文件名中的编号表示它们具有更高的优先级。
10-advertiseAddress.yaml 片断示例
apiServer: advertiseAddress: "microshift-example"
apiServer:
advertiseAddress: "microshift-example"
20-audit-log.yaml 片断示例
apiServer:
auditLog:
maxFileAge: 12
apiServer:
auditLog:
maxFileAge: 12
30-SAN.yaml 片断示例
apiServer:
subjectAltNames:
- a.com
- b.com
apiServer:
subjectAltNames:
- a.com
- b.com
40-SAN.yaml 片断示例
apiServer:
subjectAltNames:
- c.com
- d.com
apiServer:
subjectAltNames:
- c.com
- d.com
配置结果示例
1.2.4. 配置广告地址网络标记 复制链接链接已复制到粘贴板!
apiserver.advertiseAddress 标志指定将 API 服务器公告给集群成员的 IP 地址。此地址必须可以被集群访问。您可以在此处设置自定义 IP 地址,但还必须将 IP 地址添加到主机接口。自定义此参数 preempts MicroShift,不向 br-ex 网络接口添加默认 IP 地址。
如果您自定义 advertiseAddress IP 地址,请确保集群可在 MicroShift 启动时通过添加 IP 地址到主机接口来访问它。
如果未设置,则默认值将在服务网络后设置为下一个直接子网。例如,当服务网络为 10.43.0.0/16 时,advertiseAddress 被设置为 10.44.0.0/32。
1.2.5. 为 NodePort 服务扩展端口范围 复制链接链接已复制到粘贴板!
serviceNodePortRange 设置扩展可用于 NodePort 服务的端口范围。当需要公开 30000-32767 范围下的特定标准端口时,这个选项很有用。例如,如果您的设备需要公开网络上的 1883/tcp MQ 遥测传输(MQTT)端口,因为客户端设备无法使用不同的端口。
NodePort 可以与系统端口重叠,从而导致系统或 MicroShift 出现故障。
在配置 NodePort 服务范围时请考虑以下几点:
-
不要在没有明确选择了
nodePort的情况下创建任何 NodePort 服务。如果没有指定显式nodePort,则端口由kube-apiserver随机分配,且无法预测。 -
不要为在设备
HostNetwork上公开的系统服务端口、MicroShift 端口或其他服务创建任何 NodePort 服务。 表一指定在扩展端口范围时要避免的端口:
Expand 表 1.2. 避免的端口。 端口 描述 22/tcp
SSH 端口
80/tcp
OpenShift Router HTTP 端点
443/tcp
OpenShift Router HTTPS 端点
1936/tcp
openshift-router 的指标服务,目前不会公开
2379/tcp
etcd 端口
2380/tcp
etcd 端口
6443
kubernetes API
8445/tcp
openshift-route-controller-manager
9537/tcp
cri-o 指标
10250/tcp
kubelet
10248/tcp
kubelet healthz port
10259/tcp
kube 调度程序