第 2 章 使用配置文件自定义 MicroShift
使用 MicroShift YAML 文件自定义您的首选项、设置和参数。
MicroShift 的通用设备插件只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
2.1. 使用自定义设置 复制链接链接已复制到粘贴板!
要创建自定义配置,请复制 /etc/microshift/ 目录中提供的 config.yaml.default 文件的副本,请重命名 config.yaml。将此文件保存在 /etc/microshift/ 目录中,然后您可以在启动或重启 MicroShift 前更改覆盖默认值的支持的设置。
如果您只对默认设置进行了一些更改,请考虑使用配置置入片断作为替代方法。
在更改任何配置设置后,重新启动 MicroShift 使其生效。当 MicroShift 启动时,config.yaml 文件是只读的。
2.1.1. 单独的重启 复制链接链接已复制到粘贴板!
可能需要单独重启 MicroShift 节点的应用程序和其他可选服务,以便在整个节点中应用配置更改。例如,在更改某些网络设置时,您必须停止并重启服务和应用程序 pod 以应用这些更改。如需更多信息,请参阅您要完成的任务的每个步骤。
如果您同时添加您需要的所有配置,您可以最小化系统重启。
2.1.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 记录都是这个基础的子域。 |
|
|
|
默认情况下, |
|
|
| 列出插件要公开的设备定义。每个设备条目都包含 'name' 和一个组列表。 |
|
|
| 列出设备组。组中的设备由通用名称下的一组设备组成。当您从那个池中请求设备时,您可以从不同的定义的路径接收设备。 |
|
|
|
指定此组可同时挂载的次数。如果未指定,则 Count 默认为 1。有可能为 |
|
|
|
列出主机设备文件路径。路径可以是 glob 模式。例如: |
|
|
|
当组中的其他设备产生更多匹配项时,最多可同时指定组里可以同时使用的次数。例如,如果组中的一个路径匹配 5 个设备,另一个路径匹配 1 设备,但限制为 10,则组提供了 5 对设备。如果未指定,则限制默认为 |
|
|
|
主机设备应挂载到容器中的文件路径。如果未指定,mountPath 默认为 |
|
|
|
主机上设备的文件路径。例如: |
|
|
|
提供给挂载的设备的文件系统权限。仅适用于 类型的设备 的
如果未指定,则默认值为 |
|
|
|
指定路径是否应以只读形式挂载。仅适用于挂载类型 |
|
|
|
描述此路径所代表的文件系统类型,因此应如何挂载它。 |
|
|
|
列出此设备组包含的 USB 规格:供应商和产品 ID 必须始终匹配。如果提供,串行 ID 必须与匹配,如果 ID 为空,则跳过该串行 ID。 |
|
|
|
要匹配的设备的 USB 产品 ID。例如: |
|
|
| 要匹配的设备的序列号。USB 设备必须与所有给定属性完全匹配。 |
|
|
|
要匹配的设备的 USB 供应商 ID。例如: |
|
|
|
代表此规格描述的设备类型的唯一字符串。例如, |
|
|
|
指定节点公告并存在哪些设备的域前缀。例如: |
|
|
| 指定默认的 GDP 状态。 |
|
|
|
对包含由入口控制器提供的默认证书的 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 状态,可以是 |
2.1.3. 配置广告地址网络标记 复制链接链接已复制到粘贴板!
apiserver.advertiseAddress 标志指定将 API 服务器公告给节点成员的 IP 地址。此地址必须可以被节点访问。您可以在此处设置自定义 IP 地址,但还必须将 IP 地址添加到主机接口。自定义此参数 preempts MicroShift,不向 br-ex 网络接口添加默认 IP 地址。
如果您自定义 advertiseAddress IP 地址,请确保节点可通过将 IP 地址添加到主机接口来确保节点可访问。
如果未设置,则默认值将在服务网络后设置为下一个直接子网。例如,当服务网络为 10.43.0.0/16 时,advertiseAddress 被设置为 10.44.0.0/32。
2.1.4. 为 NodePort 服务扩展端口范围 复制链接链接已复制到粘贴板!
serviceNodePortRange 设置扩展可用于 NodePort 服务的端口范围。当需要公开 30000-32767 范围下的特定标准端口时,这个选项很有用。例如,如果您的设备需要公开网络上的 1883/tcp MQ 遥测传输(MQTT)端口,因为客户端设备无法使用不同的端口。
NodePort 可以与系统端口重叠,从而导致系统或 MicroShift 出现故障。
在配置 NodePort 服务范围时请考虑以下几点:
-
不要在没有明确选择了
nodePort的情况下创建任何 NodePort 服务。如果没有指定显式nodePort,则端口由kube-apiserver随机分配,且无法预测。 -
不要为在设备
HostNetwork上公开的系统服务端口、MicroShift 端口或其他服务创建任何 NodePort 服务。 表一指定在扩展端口范围时要避免的端口:
Expand 表 2.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 调度程序