1.3. 使用自定义设置
要创建自定义配置,请制作 /etc/microshift/
目录中提供的 config.yaml.default
文件的副本,请将其重命名为 config.yaml
。将此文件保存在 /etc/microshift/
目录中,然后您可以在启动或重启 MicroShift 前更改预期覆盖默认值的支持的设置。
在更改任何配置设置后,重新启动 MicroShift 使其生效。当 MicroShift 启动时,config.yaml
文件是只读的。
1.3.1. 单独的重启 复制链接链接已复制到粘贴板!
可能需要单独重启 MicroShift 集群的应用程序和其他可选服务,以便在集群中应用配置更改。例如,在更改某些网络设置时,您必须停止并重启服务和应用程序 pod 以应用这些更改。如需更多信息,请参阅您要完成的任务的每个步骤。
如果您同时添加您需要的所有配置,您可以最小化系统重启。
1.3.2. MicroShift config.yaml 文件的参数和值 复制链接链接已复制到粘贴板!
下表解释了 MicroShift 配置 YAML 参数以及每个有效值:
字段 | 类型 | 描述 |
---|---|---|
|
| 指定 API 服务器公告给集群成员的 IP 地址的字符串。默认值根据服务网络的地址计算。 |
|
|
在自动删除前保留日志文件的时长。 |
|
|
默认情况下,当 |
|
| 保存的日志文件总数。默认情况下,MicroShift 保留 10 个日志文件。创建过量文件时,会删除最旧的文件。可以配置这个值。 |
|
|
仅记录读取和写入请求的日志元数据 ;除了 OAuth 访问令牌请求外,不记录请求正文。如果没有指定此字段,则使用 |
|
| 使用自定义证书颁发机构定义外部生成的证书和域名。 |
|
| 证书的完整路径。 |
|
| 证书密钥的完整路径。 |
|
| 可选。添加显式 DNS 名称列表。允许前导通配符。如果没有提供名称,则会从证书中提取隐式名称。 |
|
完全限定域名(FQDN),通配符,如 3.0. | API 服务器证书的主题备用名称。sans 表示证书保护的所有域名和 IP 地址。 |
|
| 定义使用的传输协议(TLS)以及允许的密码套件。为公开的 MicroShift API 服务器和内部 control plane 端点提供安全性。 |
|
|
列出 API 服务器接受和服务的密码套件。默认为允许 TLS 规格在 |
|
|
指定要从 API 服务器提供服务的 TLS 的最低版本。默认值为 |
|
|
日志详细程度。默认值为 |
|
| 集群的基域。所有管理的 DNS 记录都是这个基础的子域。 |
|
|
默认情况下, |
|
|
对包含由入口控制器提供的默认证书的 secret 的引用。当路由没有指定其自身证书时,会使用 secret 必须包含以下密钥和数据:
如果没有设置这些值,会自动生成并使用通配符证书。该证书对 ingress 控制器 任何正在使用的证书都会自动集成到 MicroShift OAuth 服务器中。 |
|
|
验证客户端对集群和服务的访问。使用这些设置时启用双向 TLS 身份验证。如果您没有为 spec. |
|
| 可选子字段指定与有效客户端证书上可分辨名称匹配的正则表达式列表,以过滤请求。使用此参数使入口控制器根据可分辨的名称拒绝证书。需要 Perl 兼容正则表达式(PCRE)语法。如果配置此字段,它必须包含有效的表达式,否则 MicroShift 服务会失败。至少一种模式必须与客户端证书的可分辨名称匹配;否则,入口控制器拒绝证书,并拒绝连接。 |
|
|
在 |
|
| 必需的子字段,其使用重新加密 TLS 终止和自定义证书创建安全路由。您必须在 PEM 编码文件中有一个证书/密钥对,其中的证书对路由主机有效。ingress 控制器只检查边缘终止和重新加密 TLS 路由的客户端证书。纯文本 HTTP 或 passthrough TLS 路由的证书不会通过此设置检查。 |
|
|
决定用于入口的默认 HTTP 版本。默认值为 |
|
|
指定入口控制器何时和如何设置 Forwarded ,
|
|
| 定义 HTTP 流量压缩的策略。默认没有 HTTP 压缩。 |
|
|
要压缩的 MIME 类型列表。当列表为空时,ingress 控制器不会应用任何压缩。要定义一个列表,请使用 RFC 1341 中的 Content-Type 定义格式,该格式指定了消息正文中数据的类型和子类型,以及数据的原生编码。例如,
并非所有 MIME 类型都受益于压缩,但 |
|
|
默认值为
|
| IP 地址、NIC 名称或多个 | 值默认为主机的整个网络。有效可配置的值是一个列表,可以是单个 IP 地址或 NIC 名称,也可以是多个 IP 地址和 NIC 名称。 |
|
|
默认值为 |
|
|
显示的默认端口。可配置。有效值是 |
|
|
显示的默认端口。可配置。有效值是 |
|
| 定义处理新路由声明的策略,如允许或拒绝命名空间之间的声明。默认情况下,允许路由在命名空间间声明相同主机名的不同路径。 |
|
|
描述如何处理跨命名空间的主机名声明。默认值为
|
|
| 描述如何使用通配符策略的路由由入口控制器处理。
|
|
|
路由器状态.默认值为 |
|
|
指定入口控制器 TLS 连接的设置。如果没有设置,则默认值基于 |
|
|
指定 TLS 安全性的配置集类型。默认值为
当使用 |
|
| 指定入口控制器的 TLS 版本。
最低 TLS 版本为
|
| 对象(object) | 指定用于调整入口控制器 pod 性能的选项。 |
|
带有格式 |
定义连接在关闭连接前等待客户端响应服务器/后端时保持打开的时长。默认超时为 |
|
带有格式 |
定义连接在等待客户端响应时保持打开的时长。默认超时为 |
|
|
描述为
|
|
|
描述必须使用
|
|
|
默认的
|
|
|
默认值为
|
|
格式 |
定义连接在关闭连接前等待服务器或后端响应时保持打开的时长。默认超时为 |
|
格式 |
定义连接在等待服务器或后端响应时保持打开的时长。默认超时为 |
|
形式为 |
定义每个
|
|
格式 | 定义路由器可以保存数据以查找匹配路由的时长。如果将此间隔设置得太短,则值太短可能会导致路由器恢复到边缘终止的客户端或重新加密路由的默认证书,即使可以使用更好匹配的证书。
|
|
格式 |
定义隧道连接(包括 websocket)在隧道闲置时保持打开的时长。默认超时为 |
| 请参阅 MicroShift 低延迟指令 | kubelet 节点代理的 passthrough 配置参数。用于低延迟配置。默认值为 null。 |
|
|
用于扫描 |
| IP 地址块 |
从中分配 Pod IP 地址的 IP 地址块。IPv4 是默认网络。支持双栈条目。此字段中的第一个条目在 MicroShift 启动后是不可变的。默认范围为 |
| 字符串 |
当为空或设置为 |
|
|
控制 Multus Container Network Interface (CNI)的部署。默认状态为 |
| IP 地址块 |
Kubernetes 服务的虚拟 IP 地址块。服务的 IP 地址池.IPv4 是默认设置。支持双栈条目。此字段中的第一个条目在 MicroShift 启动后是不可变的。默认范围为 |
|
|
端口范围允许用于 |
|
| 节点的名称。默认值为 hostname。如果非空,则使用此字符串来识别节点,而不是主机名。此值在 MicroShift 启动后是不可变的。 |
| IPv4 地址 | 节点的 IPv4 地址。默认值是默认路由的 IP 地址。 |
| IPv6 地址 | 用于双栈配置的节点的 IPv6 地址。无法在单个堆栈中为 IPv4 或 IPv6 配置。默认值为空值或 null。 |
|
| 默认值为空。空值或 null 字段默认为 LVMS 部署。 |
|
|
默认值为 null 或空数组。null 或空数组默认为部署 |
|
发送遥测数据的端点。报告的指标中没有包括用户或私有数据。默认值为 | |
|
|
Telemetry 状态,可以是 |
1.3.3. 使用配置片断 复制链接链接已复制到粘贴板!
如果要配置一个或多个设置,如添加主题备用名称(SAN),您可以使用 /etc/microshift/config.d/
配置目录来丢弃配置片断 YAML 文件。您必须重启 MicroShift 才能应用新配置。
要返回前面的值,您可以删除配置片断并重启 MicroShift。
1.3.3.1. 配置片断如何工作 复制链接链接已复制到粘贴板!
在运行时,/etc/microshift/config.d
中的 YAML 文件合并到现有的 MicroShift 配置中,无论配置是否为默认值或用户创建的 config.yaml
文件。您不需要创建 config.yaml
文件来使用配置片断。
代码片段目录中的文件按字典顺序排序,并按顺序运行。您可以对代码片段使用数字前缀,以便按您想要的顺序读取每个项。当同一参数有多个 YAML 时,最后一个读取文件具有优先权。
配置片断优先于默认值和自定义 config.yaml
配置文件。
1.3.3.2. 列出配置片断示例 复制链接链接已复制到粘贴板!
列表或数组不会被合并,它们会被覆盖。例如,您可以通过为第一个字段之后读取的同一字段创建额外的片断来替换 SAN 或 SAN 列表:
MicroShift 配置目录内容
-
/etc/microshift/config.yaml.default
或/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 - host2
apiServer: subjectAltNames: - host1 - host2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 20-san.yaml
片断示例apiServer: subjectAltNames: - hostZ
apiServer: subjectAltNames: - hostZ
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置结果示例
apiServer: subjectAltNames: - hostZ
apiServer: subjectAltNames: - hostZ
Copy 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.3.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.3.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.3.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.3.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 调度程序