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 参数以及每个有效值:

Expand
表 1.1. MicroShift config.yaml 参数
字段类型描述

advertiseAddress

string

指定 API 服务器公告给集群成员的 IP 地址的字符串。默认值根据服务网络的地址计算。

auditLog.maxFileAge

number

在自动删除前保留日志文件的时长。maxFileAge 参数中的默认值为 0 表示日志文件永远不会根据年龄删除。可以配置这个值。

auditLog.maxFileSize

number

默认情况下,当 audit.log 文件达到 maxFileSize 限制时,audit.log 文件会被轮转,MicroShift 开始写入新的 audit.log 文件。可以配置这个值。

auditLog.maxFiles

number

保存的日志文件总数。默认情况下,MicroShift 保留 10 个日志文件。创建过量文件时,会删除最旧的文件。可以配置这个值。

auditLog.profile

默认,WriteRequestBodies,AllRequestBodies, 或 None

仅记录读取和写入请求的日志元数据 ;除了 OAuth 访问令牌请求外,不记录请求正文。如果没有指定此字段,则使用 Default 配置集。

namedCertificates

list

使用自定义证书颁发机构定义外部生成的证书和域名。

namedCertificates.certPath

path

证书的完整路径。

namedCertificates.keyPath

path

证书密钥的完整路径。

namedCertificates.names

list

可选。添加显式 DNS 名称列表。允许前导通配符。如果没有提供名称,则会从证书中提取隐式名称。

subjectAltNames

完全限定域名(FQDN),通配符,如 3.0. domain.com、或 IP 地址。

API 服务器证书的主题备用名称。sans 表示证书保护的所有域名和 IP 地址。

tls

list

定义使用的传输协议(TLS)以及允许的密码套件。为公开的 MicroShift API 服务器和内部 control plane 端点提供安全性。

tls.cipherSuites

string

列出 API 服务器接受和服务的密码套件。默认为允许 TLS 规格在 tls.minVersion 参数中设置的密码套件。

tls.minVersion

VersionTLS12VersionTLS13

指定要从 API 服务器提供服务的 TLS 的最低版本。默认值为 VersionTLS12

debugging.logLevel

normal,Debug,Trace, 或 TraceAll

日志详细程度。默认值为 Normal

dns.baseDomain

有效域

集群的基域。所有管理的 DNS 记录都是这个基础的子域。

etcd.memoryLimitMB

number

默认情况下,etcd 根据需要使用尽可能多的内存来处理系统上的负载。但是,在内存受限系统中,可能需要限制在给定时间可以使用 etcd 的内存量。

ingress.certificateSecret

string

对包含由入口控制器提供的默认证书的 secret 的引用。当路由没有指定其自身证书时,会使用 certificateSecret

secret 必须包含以下密钥和数据:

  • tls.crt: 证书文件内容
  • tls.key: 密钥文件内容

如果没有设置这些值,会自动生成并使用通配符证书。该证书对 ingress 控制器 域和 子域 字段有效,证书生成的 CA 会自动与集群的信任存储集成。

任何正在使用的证书都会自动集成到 MicroShift OAuth 服务器中。

ingress.clientTLS

AllowedSubjectPatterns,spec.clientTLS.ClientCA,spec.clientTLS.clientCertificatePolicy

验证客户端对集群和服务的访问。使用这些设置时启用双向 TLS 身份验证。如果您没有为 spec. clientTLS.clientCertificatePolicy 和 spec.clientTLS.ClientCA 所需的子字段设置值,则不会启用客户端 TLS。

ingress.clientTLS.AllowedSubjectPatterns

以 PCRE 语法列出

可选子字段指定与有效客户端证书上可分辨名称匹配的正则表达式列表,以过滤请求。使用此参数使入口控制器根据可分辨的名称拒绝证书。需要 Perl 兼容正则表达式(PCRE)语法。如果配置此字段,它必须包含有效的表达式,否则 MicroShift 服务会失败。至少一种模式必须与客户端证书的可分辨名称匹配;否则,入口控制器拒绝证书,并拒绝连接。

ingress.clientTLS.ClientCA

string

openshift-ingress 命名空间中指定配置映射所需的子字段。配置映射必须包含 CA 证书捆绑包。

ingress.clientTLS.ClientCertificatePolicy

必需可选

必需的子字段,其使用重新加密 TLS 终止和自定义证书创建安全路由。您必须在 PEM 编码文件中有一个证书/密钥对,其中的证书对路由主机有效。ingress 控制器只检查边缘终止和重新加密 TLS 路由的客户端证书。纯文本 HTTP 或 passthrough TLS 路由的证书不会通过此设置检查。

ingress.defaultHTTPVersion

number

决定用于入口的默认 HTTP 版本。默认值为 1,即 HTTP/1.1 协议。

ingress.forwardedHeaderPolicy

附加,替换,IfNone,Never

指定入口控制器何时和如何设置 Forwarded ,X- Forwarded -For,X-Forwarded-Host,X-Forwarded-Port,X-Forwarded-Proto, 和 X-Forwarded-Proto-Version HTTP 标头。默认值为 Append

  • Append 指定入口控制器附加现有的标头。
  • replace 指定入口控制器设置标头并替换任何现有的 ForwardedX-Forwarded requirements 标头。
  • IfNone 指定入口控制器如果尚未设置标头,则它们会被设置。
  • Never 指定入口控制器永远不会设置标头,并保留任何现有的标头。

ingress.httpCompression

object

定义 HTTP 流量压缩的策略。默认没有 HTTP 压缩。

ingress.httpCompression.mimeTypes

数组 或 null

要压缩的 MIME 类型列表。当列表为空时,ingress 控制器不会应用任何压缩。要定义一个列表,请使用 RFC 1341 中的 Content-Type 定义格式,该格式指定了消息正文中数据的类型和子类型,以及数据的原生编码。例如,Content-Type := type \"/\" subtype *[\";\" parameter]

  • Content-Type 的值可以是以下类型之一:application, audio, image, message, multipart, text, video, 或一个自定义类型,前面带有 \"X-\",后跟一个令牌。令牌必须以以下一种方式定义:
  • 令牌是至少一个字符的字符串,不包含空格、控制字符或 tspecials 设置中的任何字符。
  • tspecials set 包含字符 ()\u003c\u003e@、:\\\"/[]?.=
  • Content-Type 中的子类型也是令牌。
  • 子类型后面的可选参数定义为 令牌 \"=\" (令牌 / quoted-string)。
  • quoted-string 在 RFC 822 中定义,用双引号括起,可以包含空格以及除 \\\"CR 以外的任何字符。quoted-string 也可以包含任何单个 ASCII 字符(如果其用以下字符转义): \\."。

并非所有 MIME 类型都受益于压缩,但 HAProxy 使用资源在配置压缩时尝试压缩文件。通常说,文本格式(如 htmlccsjs )可从压缩中受益。将 CPU 资源用于压缩文件类型(如图像、音频和视频)可能并不能获得有限的好处。

ingress.httpEmptyRequestsPolicy

respondIgnore

默认值为 Respond。描述在收到请求前连接超时时应如何处理 HTTP 连接。这些连接通常来自负载平衡器服务的健康状况探测或 Web 浏览器的规范连接,如 预连接

  • 如果将字段设置为 Respond,入口控制器发送 "HTTP 400" 或 "408" 响应,如果启用了访问日志记录,则会在适当的指标中计算连接。
  • 如果字段设置为 Ignore,则入口控制器在不发送响应的情况下关闭连接,记录连接或递增指标。将此字段设置为 Ignore 可能会妨碍对问题或入侵的检测和诊断,特别是在因为网络错误或端口扫描导致超时连接时。在这两种情况下,记录空请求都可用于诊断错误和检测入侵尝试。

ingress.listenAddress

IP 地址、NIC 名称或多个

值默认为主机的整个网络。有效可配置的值是一个列表,可以是单个 IP 地址或 NIC 名称,也可以是多个 IP 地址和 NIC 名称。

ingress.logEmptyRequests

logIgnore

默认值为 Log。指定如何记录接收空请求的连接。这些连接通常源自负载平衡器服务运行状况或 Web 浏览器的规范连接(如 预连接 )的健康探测。日志记录典型的请求可能并不可取,但请求也可能是由网络错误或端口扫描导致的,在这种情况下,日志记录对于诊断错误和检测入侵尝试非常有用。

ingress.ports.http

80

显示的默认端口。可配置。有效值是 1-65535 范围内的单个唯一端口。ports.httpports.https 字段的值不能相同。

ingress.ports.https

443

显示的默认端口。可配置。有效值是 1-65535 范围内的单个唯一端口。ports.httpports.https 字段的值不能相同。

ingress.routeAdmissionPolicy

namespaceOwnershipwildcardPolicy

定义处理新路由声明的策略,如允许或拒绝命名空间之间的声明。默认情况下,允许路由在命名空间间声明相同主机名的不同路径。

ingress.routeAdmissionPolicy.namespaceOwnership

strictInterNamespaceAllowed

描述如何处理跨命名空间的主机名声明。默认值为 InterNamespaceAllowed。指定 Strict 可防止不同命名空间中的路由声明相同的主机名。如果在自定义 MicroShift config.yaml 文件中删除了该值,则会自动设置 InterNamespaceAllowed 值。

  • Strict:不允许路由在命名空间间声明相同的主机名。
  • InterNamespaceAllowed :允许路由在命名空间间声明相同主机名的不同路径。

ingress.routeAdmissionPolicy.wildcardPolicy

WildcardsAllowedWildcardsDisallowed

描述如何使用通配符策略的路由由入口控制器处理。

  • WildcardsAllowed :表示入口控制器接受任何通配符策略的路由。
  • WildcardsDisallowed :表示入口控制器只接受采用 None 通配符策略的路由。将 wildcardPolicyWildcardsAllowed 更新为 WildcardsDisallowed,会导致采用 Subdomain 通配符策略的已接受路由停止工作。这些路由必须重新创建为 None 通配符策略,才能被入口控制器读取。WildcardsDisallowed 是默认设置。

ingress.status

ManagedRemoved

路由器状态.默认值为 Managed

ingress.tlsSecurityProfile

object

指定入口控制器 TLS 连接的设置。如果没有设置,则默认值基于 apiservers.config.openshift.io/cluster 资源。

ingress.tlsSecurityProfile.type

,Intermediate,Modern,Custom

指定 TLS 安全性的配置集类型。默认值为 Intermediate

当使用 OldIntermediateModern配置集类型时,有效的配置集可能会在不同发行版本间有所改变。例如,使用在版本 X.Y.Z 中部署的 Intermediate 配置集的规格,升级到版本 X.Y.Z+1 可能会导致新的配置集配置应用到 ingress 控制器,从而导致一个 rollout 操作。

ingress.tlsSecurityProfile.minTLSVersion

number

指定入口控制器的 TLS 版本。

最低 TLS 版本为 1.1,最大 TLS 版本为 1.3。

  • 加密器和配置的安全配置集的最小 TLS 版本反映在 TLSProfile 状态中。
  • ingress 控制器将 OldCustom 配置集的 TLS 1.0 转换为 1.1

ingress.tuningOptions

对象(object)

指定用于调整入口控制器 pod 性能的选项。

ingress.tuningOptions.clientFinTimeout

带有格式 持续时间的字符串

定义连接在关闭连接前等待客户端响应服务器/后端时保持打开的时长。默认超时为 1s,即 1 秒。

ingress.tuningOptions.clientTimeout

带有格式 持续时间的字符串

定义连接在等待客户端响应时保持打开的时长。默认超时为 30s,即 30 秒。

ingress.tuningOptions.headerBufferBytes

格式为 int32 的整数 ;当启用了 HTTP/2 时,16384 是最小值。

描述为 IngressController 连接会话保留多少内存,以字节为单位。默认值为 32768,以字节为单位。

  • 通常不建议设置此字段,因为 headerBufferBytes 值太小可能会破坏 IngressControllerheaderBufferBytes 值太大可能会导致 IngressController 使用比必要多的内存。

ingress.tuningOptions.headerBufferMaxRewriteBytes

整数,格式化的 int32; 4096 是最小值

描述必须使用 headerBufferBytes 为 HTTP 标头重写和附加 IngressController 连接会话保留多少内存。默认值为 8192 字节。传入的 HTTP 请求仅限于 headerBufferBytes 字节,减去 headerBufferMaxRewriteBytes 字节,这意味着 headerBufferBytes 的值必须大于 headerBufferMaxRewriteBytes 的值。

  • 通常不建议设置此字段,因为 headerBufferMaxRewriteBytes 值可能会破坏 IngressControllerheaderBufferMaxRewriteBytes 值,它们太大可能会导致 IngressController 使用比必要更多的内存。

ingress.tuningOptions.healthCheckInterval: ""

string with pattern: ^(0|((\\.[0-9])? (ns|us| swigs|ms|s|m|h))+)$

默认的 healthCheckInterval 值为 5s,即 5 秒。此参数值定义路由器配置的后端的两个连续健康检查之间等待的时间。允许的最小值为 1s,允许的最大值为 2147483647ms,即 24.85 天。

  • 这个值被全局应用作为所有路由的默认值,但可以被路由注解 router.openshift.io/haproxy.health.check.interval 覆盖每个路由。
  • 需要未签名的持续时间字符串为十进制数字,每个数字都有一个可选的分数和单位后缀,如 300ms1.5h2h45m。有效时间单位是 nsus (或 mtc s U+00B5 或 rhacm s U+03BC)、mssmh
  • 将此参数设置为小于 5s 可能会导致流量因为频繁的 TCP 健康检查和附带 SYN 数据包状态而造成过量流量。
  • 设置此参数值太大可能会导致延迟增加,因为后端服务器不再可用,但还没有检测到。
  • 空或 0 值表示 "no opinion",ingress 控制器会选择一个默认值。请注意,默认值可能会在以后的版本中改变。

ingress.tuningOptions.maxConnections

整数,有效值为: ,0,-1, 和 range 2000-2000000

默认值为 0。 定义每个 HAProxy 进程可以建立的最大同时连接数。增加这个值可让每个入口控制器 pod 以额外的系统资源成本处理更多连接。

  • 如果此字段为空或 0, IngressController 将使用默认值 50000,但默认值可能会在以后的版本中有所变化。
  • 如果值为 1,则 HAProxy 根据运行中容器中的 ulimit 值设置的可用资源动态计算最大值。选择 -1,这意味着 auto,它会计算大量值,因此每个 HAProxy 进程都会与当前默认值 50000 相比产生大量内存用量。
  • 设置大于当前操作系统限制的值可防止 HAProxy 进程启动。
  • 您可以使用以下指标监控路由器容器的内存用量:

    container_memory_working_set_bytes{container=`router`,namespace=`openshift-ingress`}`
    Copy to Clipboard Toggle word wrap
  • 您可以使用以下指标监控路由器容器中的独立 'HAProxy'processes 的内存用量:

    container_memory_working_set_bytes{container=`router`,namespace=`openshift-ingress`}/container_processes{container=`router`,namespace=`openshift-ingress`}
    Copy to Clipboard Toggle word wrap

ingress.tuningOptions.serverFinTimeout

格式 持续时间的字符串

定义连接在关闭连接前等待服务器或后端响应时保持打开的时长。默认超时为 1s

ingress.tuningOptions.serverTimeout

格式 持续时间的字符串

定义连接在等待服务器或后端响应时保持打开的时长。默认超时为 30s

ingress.tuningOptions.threadCount

形式为 int32 的整数 ;最小值为 1,最大值为 64

定义每个 HAProxy 进程创建的线程数量。默认值为 4。如果此字段为空,则使用默认值。

  • 通常不建议设置此字段。创建更多线程可让每个入口控制器 pod 以更多系统资源成本处理更多连接。增加 HAProxy 线程数量可让入口控制器 pod 在负载下使用更多 CPU 时间,如果设置过高,则可能会耗尽其他 pod。相反,减少线程数量可能会导致入口控制器性能不佳。

ingress.tuningOptions.tlsInspectDelay

格式 持续时间的字符串

定义路由器可以保存数据以查找匹配路由的时长。如果将此间隔设置得太短,则值太短可能会导致路由器恢复到边缘终止的客户端或重新加密路由的默认证书,即使可以使用更好匹配的证书。

  • 默认检查延迟为 5s,对于大多数情况应该已经足够。为高延迟网络增加此配置的值可能会导致 SSL 握手完成延迟。任何配置的值都必须对您的应用程序是透明的。

ingress.tuningOptions.tunnelTimeout

格式 持续时间的字符串

定义隧道连接(包括 websocket)在隧道闲置时保持打开的时长。默认超时为 1h,即 1 小时。

kubelet

请参阅 MicroShift 低延迟指令

kubelet 节点代理的 passthrough 配置参数。用于低延迟配置。默认值为 null。

清单

路径列表

用于扫描 kustomization 文件的位置,用于加载清单。设置为仅扫描这些路径的路径列表。设置为空列表以禁用加载清单。列表中的条目可以是 glob 模式,以匹配多个子目录。默认值为 /usr/lib/microshift/manifests/usr/lib/microshift/manifests.d//etc/microshift/manifests/etc/microshift/manifests.d/

network.clusterNetwork

IP 地址块

从中分配 Pod IP 地址的 IP 地址块。IPv4 是默认网络。支持双栈条目。此字段中的第一个条目在 MicroShift 启动后是不可变的。默认范围为 10.42.0.0/16

network.cniPlugin

字符串

当为空或设置为 "ovnk" 时,将 Open Virtual Networking - Kubernetes (OVN-K)网络插件部署为默认容器网络接口(CNI)。支持的值为空,"""ovnk "。设置为 "none" 可删除 CNI,我们不建议这样做。只有 OVN-K 由 MicroShift 管理。

network.multus.status

string

控制 Multus Container Network Interface (CNI)的部署。默认状态为 Disabled。如果将值设为 Enabled,则无法删除 Multus CNI。

network.serviceNetwork

IP 地址块

Kubernetes 服务的虚拟 IP 地址块。服务的 IP 地址池.IPv4 是默认设置。支持双栈条目。此字段中的第一个条目在 MicroShift 启动后是不可变的。默认范围为 10.43.0.0/16

network.serviceNodePortRange

range

端口范围允许用于 NodePort 类型的 Kubernetes 服务。如果没有指定范围,则使用默认范围 30000-32767。没有指定 NodePort 的服务会自动从这个范围内分配一个。这个参数可以在 MicroShift 启动后更新。

node.hostnameOverride

string

节点的名称。默认值为 hostname。如果非空,则使用此字符串来识别节点,而不是主机名。此值在 MicroShift 启动后是不可变的。

node.nodeIP

IPv4 地址

节点的 IPv4 地址。默认值是默认路由的 IP 地址。

nodeIPv6

IPv6 地址

用于双栈配置的节点的 IPv6 地址。无法在单个堆栈中为 IPv4 或 IPv6 配置。默认值为空值或 null。

storage.driver

nonelvms

默认值为空。空值或 null 字段默认为 LVMS 部署。

storage.optionalCsiComponents

数组

默认值为 null 或空数组。null 或空数组默认为部署 snapshot-controller。预期值为 csi-snapshot-controllernone。值 none 与所有其他值相互排斥。

telemetry.endpoint

https://infogw.api.openshift.com

发送遥测数据的端点。报告的指标中没有包括用户或私有数据。默认值为 https://infogw.api.openshift.com

telemetry.status

Enabled

Telemetry 状态,可以是 EnabledDisabled。默认值为 Enabled

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
    Copy to Clipboard Toggle word wrap

    20-san.yaml 片断示例

    apiServer:
      subjectAltNames:
        - hostZ
    Copy to Clipboard Toggle word wrap

    配置结果示例

    apiServer:
      subjectAltNames:
        - hostZ
    Copy to Clipboard Toggle word wrap

如果要在现有列表中添加值,您可以将其添加到现有片断中。例如,要将 hostZ 添加到现有 SAN 列表中,请编辑您已有的代码片段,而不是创建新端口:

示例 10-san.yaml 片断

apiServer:
  subjectAltNames:
    - host1
    - host2
    - hostZ
Copy to Clipboard Toggle word wrap

配置结果示例

apiServer:
  subjectAltNames:
    - host1
    - host2
    - hostZ
Copy to Clipboard Toggle word wrap

1.3.3.3. 对象配置片断示例

对象合并在一起。

10-advertiseAddress.yaml 片断示例

apiServer:
  advertiseAddress: "microshift-example"
Copy to Clipboard Toggle word wrap

20-audit-log.yaml 片断示例

apiServer:
  auditLog:
    maxFileAge: 12
Copy to Clipboard Toggle word wrap

配置结果示例

apiServer:
  advertiseAddress: "microshift-example"
  auditLog:
    maxFileAge: 12
Copy to Clipboard Toggle word wrap

1.3.3.4. 混合配置片断示例

在本例中,advertiseAddressauditLog.maxFileAge 字段的值都合并到配置中,但只有 c.comd.com subjectAltNames 值会被保留,因为文件名中的编号表示它们具有更高的优先级。

10-advertiseAddress.yaml 片断示例

apiServer:
  advertiseAddress: "microshift-example"
Copy to Clipboard Toggle word wrap

20-audit-log.yaml 片断示例

apiServer:
  auditLog:
    maxFileAge: 12
Copy to Clipboard Toggle word wrap

30-SAN.yaml 片断示例

apiServer:
  subjectAltNames:
    - a.com
    - b.com
Copy to Clipboard Toggle word wrap

40-SAN.yaml 片断示例

apiServer:
  subjectAltNames:
    - c.com
    - d.com
Copy to Clipboard Toggle word wrap

配置结果示例

apiServer:
  advertiseAddress: "microshift-example"
  auditLog:
    maxFileAge: 12
  subjectAltNames:
    - c.com
    - d.com
Copy to Clipboard Toggle word wrap

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 调度程序

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat