5.2. 在 MicroShift 中配置入口控制


您可以通过更新 MicroShift 服务配置文件或使用配置片断来使用详细的入口控制设置。

重要
  • config.yaml 配置文件优先于内置设置。每次 MicroShift 服务启动时都会读取 config.yaml 文件。
  • 配置片断 YAML 优先于内置设置和 config.yaml 配置文件。

先决条件

  • 已安装 OpenShift CLI(oc)。
  • 有对节点的 root 访问权限。
  • 您的节点使用 OVN-Kubernetes Container Network Interface (CNI)插件。

流程

  1. 使用以下两种方式之一应用入口控制设置:

    1. 通过在 /etc/microshift/ 目录中生成提供的 config.yaml.default 文件的副本,将其命名为 config.yaml 并将其保留在源目录中,来更新 MicroShift config.yaml 配置文件。
    2. 使用配置片段应用您想要的 ingress 控制设置。为此,请创建一个配置片断 YAML 文件,并将其放在 /etc/microshift/config.d/ 配置中。
  2. 将 MicroShift YAML 的 ingress 部分中的默认值替换为您的有效值,或将配置片断文件替换为您需要的部分。

    带有默认值的 Ingress 控制器配置字段

    apiServer:
    # ...
    ingress:
      accessLogging:
        destination:
          container:
            maxLength: 1024
          syslog:
            address: ""
            facility: ""
            maxLength: 1024
            port: 0
          type: ""
        httpCaptureCookies:
          - matchType: ""
            maxLength: 0
            name: ""
            namePrefix: ""
        httpCaptureHeaders:
          request:
            - maxLength: 0
              name: ""
          response:
            - maxLength: 0
              name: ""
        httpLogFormat: ""
        status: Disabled
      certificateSecret: router-certs-custom
      clientTLS:
        allowedSubjectPatterns: []
        clientCA:
          name: ""
        clientCertificatePolicy: ""
      defaultHTTPVersion: 1
      forwardedHeaderPolicy: Append
      httpCompression:
        mimeTypes:
          - ""
      httpEmptyRequestsPolicy: Respond
      httpErrorCodePages:
          name: ""
      listenAddress: []
      logEmptyRequests: Log
      ports:
         http: 80
         https: 443
      routeAdmissionPolicy:
        namespaceOwnership: InterNamespaceAllowed
        wildcardPolicy: WildcardsDisallowed
      status: Managed
      tlsSecurityProfile:
        type:
        custom:
          ciphers:[]
          minTLSVersion:""
        intermediate: {}
        old: {}
      tuningOptions:
        clientFinTimeout: 1s
        clientTimeout: 30s
        headerBufferBytes: 0
        headerBufferMaxRewriteBytes: 0
        healthCheckInterval: 5s
        maxConnections: 0
        serverFinTimeout: 1s
        serverTimeout: 30s
        threadCount: 4
        tlsInspectDelay: 5s
        tunnelTimeout: 1h
    # ...
    Copy to Clipboard Toggle word wrap

    Expand
    表 5.1. Ingress 控制器配置字段定义表
    参数描述

    ingress

    MicroShift config.yaml 文件的 ingress 部分定义了 OpenShift Container Platform IngressController API 实现的可配置参数。下表中的所有参数都是 MicroShift config.yamlingress 部分中的子部分。

    accessLogging

    这个 ingress 子部分描述了客户端请求的日志记录方式。如果 status 字段为空,则禁用访问日志记录。当 status 字段设置为 Enabled 时,使用 accessLogging 参数配置访问请求,并且 accessLogging.destination.type 会自动设置为 Container

    • 启用后,访问日志记录是 openshift-router 日志的一部分。MicroShift 的 sos report 过程会捕获来自这个 pod 的日志。

    accessLogging.destination

    日志的目的地。日志的目的地可以是本地 sidecar 容器或远程的。默认值为 null。

    accessLogging.destination.type

    日志的目标类型。有效值为 container Syslog

    • 将此值设置为 Container 指定日志应该进入 sidecar 容器。当目标类型设置为容器 ,会自动创建名为 logs 的容器。使用容器日志意味着当日志速率超过容器运行时容量或自定义日志记录解决方案容量时,可能会丢弃日志。您必须有一个自定义日志记录解决方案,从这个 sidecar 读取日志。
    • 将此值设置为 Syslog 指定日志发送到 Syslog 端点。您必须配置自定义 Syslog 实例,并指定可以接收 Syslog 消息的端点。您必须有一个自定义 Syslog 实例。例如,开始使用内核日志记录

    accessLogging.destination.container

    描述容器 日志记录目的地类型的参数。您必须配置从这个 sidecar 读取日志的自定义日志记录解决方案。

    accessLogging.destination.container.maxLength

    可选配置。默认值为 1024 字节。消息长度必须至少为 480,且不能超过 8192 字节。

    accessLogging.destination.syslog

    描述 Syslog 日志记录目的地类型的参数。您必须使用可接收 Syslog 消息的端点配置自定义 Syslog 实例。

    accessLogging.destination.syslog.address

    设置 Syslog 目标类型时所需的配置。有效值是接收日志消息的 syslog 端点的 IP 地址。

    accessLogging.destination.syslog.facility

    设置 Syslog 目的地类型时的可选配置。指定日志消息的 syslog 工具。如果该字段为空,则工具为 local1。否则,字段必须指定以下有效 syslog 工具之一: kern,user,mail,daemon,auth,syslog,lpr,news,uucp,cron, auth2', ftp,ntp, audit ,audit,alert,cron2,local0,local1,local2,local3,local4,local5,local5, local6, 或 .7.

    accessLogging.destination.syslog.maxLength

    设置 Syslog 目的地类型时的可选配置。Syslog 消息的最大长度。消息长度必须至少为 480,且不能超过 4096 字节。如果此字段为空,则最大长度设置为默认值 1024 字节。

    accessLogging.destination.syslog.port

    设置 Syslog 目标类型时所需的配置。接收日志消息的 syslog 端点的 UDP 端口号。默认值为 0

    httpCaptureCookies

    指定您要在访问日志中捕获的 HTTP cookie。如果 httpCaptureCookies 字段为空,则访问日志不会捕获 Cookie。默认值为空。配置 ingress.accessLogging.httpCaptureCookies 会自动启用入口访问日志记录。对于您要捕获的任何 Cookie,还必须设置 matchTypemaxLength 参数。

    • 例如:

        httpCaptureCookies:
        - matchType: Exact
          maxLength: 128
          name: MYCOOKIE
      Copy to Clipboard Toggle word wrap

    httpCaptureCookies.matchType

    指定 Cookie 的字段名称与捕获 Cookie 设置完全匹配,或者是捕获 Cookie 设置的前缀。有效值是 Exact,用于精确字符串 match 和 Prefix 用于字符串前缀匹配。

    • 如果使用 Exact 设置,还必须在 httpCaptureCookies.name 字段中指定一个名称。
    • 如果使用 Prefix 设置,还必须在 httpCaptureCookies.namePrefix 字段中指定前缀。例如,当 namePrefix 为 "mush" 时,matchType: Prefix 的设置会捕获一个名为 "mush" 或 "mushroom" 的 Cookie,但不命名"room"。第一个匹配的 Cookie 被捕获。

    httpCaptureCookies.maxLength

    指定已记录 Cookie 的最大长度,其中包括 Cookie 名称、Cookie 值和字符分隔符。如果日志条目超过这个长度,则会在日志消息中截断该值。入口控制器可能会对请求中的 HTTP 标头总长度施加单独的绑定。最小值为 1 字节,最大值为 1024 字节。默认值为 0

    httpCaptureCookies.name

    指定用于 Cookie 名称匹配的确切名称,如 httpCaptureCookies.matchType 参数中设置的。该值必须是有效的 HTTP cookie 名称,如 RFC 6265 第 4.1 部分中定义。最小长度为 1 字节,最大长度为 1024 字节。

    httpCaptureCookies.namePrefix

    指定 Cookie 名称匹配的前缀,如 httpCaptureCookies.matchType 参数中设置的。该值必须是有效的 HTTP cookie 名称,如 RFC 6265 第 4.1 部分中定义。最小长度为 1 字节,最大长度为 1024 字节。

    httpCaptureHeaders

    定义应在访问日志中捕获的 HTTP 标头。此字段是一个列表,允许单独捕获请求和响应标头。当此字段为空时,不会捕获标头。这个选项只适用于纯文本 HTTP 连接,以及入口控制器终止加密的 HTTP 连接的安全:例如,edge-terminated 或 reencrypt 连接。对于 TLS 透传 连接,无法捕获标头。配置 ingress.accessLogging.httpCaptureHeaders 参数会自动启用入口访问日志记录。

    httpCaptureHeaders.request

    指定要捕获的 HTTP 请求标头。当此字段为空时,不会捕获任何请求标头。

    httpCaptureHeaders.request.maxLength

    指定标头值的最大长度。当标头值超过这个长度时,在日志消息中会截断该值。最低要求的值是 1 字节。入口控制器可能会对请求中的 HTTP 标头总长度施加单独的绑定。

    httpCaptureHeaders.request.name

    指定标头名称。该值必须是有效的 HTTP 标头名称,如 RFC 2616 部分 4.2 中定义的。如果配置这个值,您必须指定 maxLengthname 值。

    httpCaptureHeaders.response

    指定要捕获的 HTTP 响应标头。如果此字段为空,则不会捕获响应标头。

    httpCaptureHeaders.response.maxLength

    指定标头值的最大长度。如果标头值超过这个长度,则会在日志消息中截断该值。入口控制器可能会对请求中的 HTTP 标头总长度施加单独的绑定。

    httpCaptureHeaders.response.name

    指定标头名称。该值必须是有效的 HTTP 标头名称,如 RFC 2616 部分 4.2 中定义的。

    httpLogFormat

    指定 HTTP 请求的日志消息格式。如果此字段为空,日志消息使用默认的 HTTP 日志格式。有关 HAProxy 默认 HTTP 日志格式,请参阅 HAProxy 文档

    status

    指定是否记录访问。有效值为 EnabledDisabled。默认值为 Disabled

    • 当您配置 ingress.accessLogging.httpCaptureHeadersingress.accessLogging.httpCaptureCookies 时,您必须将 ingress.accessLogging.status 设置为 Enabled
    • 当您将 ingress.status 字段设置为 Enabled 时,accessLogging.destination.type 会自动设置为 Container,路由器会在 logs 容器中记录所有请求。
    • 如果将此值设置为 Disabled,路由器不会在访问日志中记录任何请求。

    certificateSecret

    对包含 MicroShift ingress 控制器服务的默认证书的 secret 的 kubernetes.io/tls 类型的引用。当路由没有指定其自身证书时,会使用 certificateSecret 参数。所有使用的 secret 必须包含 tls.key 密钥文件内容和 tls.crt 证书文件内容。

    • 如果没有设置 certificateSecret 参数,则自动生成和使用通配符证书。通配符证书对入口控制器 默认域 及其 子域 有效。生成的证书颁发机构(CA)会自动与节点的信任存储集成。
    • 使用生成和用户指定的证书会自动与 MicroShift 内置 OAuth 服务器集成。

    clientTLS

    验证客户端对节点和服务的访问。因此,启用 mutual TLS 身份验证。如果没有设置此参数,则不会启用客户端 TLS。您必须设置 spec.clientTLS.clientCertificatePolicyspec.clientTLS.clientCA 参数才能使用客户端 TLS。

    clientTLS.AllowedSubjectPatterns

    可选子字段指定与有效客户端证书上可分辨名称匹配的正则表达式列表,以过滤请求。当您有客户端身份验证时,此参数很有用。使用此参数使入口控制器根据可分辨的名称拒绝证书。需要 Perl 兼容正则表达式(PCRE)语法。您必须设置 spec.clientTLS.clientCertificatePolicyspec.clientTLS.clientCA 参数,以使用 clientTLS.AllowedSubjectPatterns

    重要

    配置后,此字段必须包含有效的表达式,或者 MicroShift 服务失败。至少一种模式必须与客户端证书的可分辨名称匹配;否则,入口控制器拒绝证书,并拒绝连接。

    clientTLS.clientCA

    指定 openshift-ingress 命名空间中的所需配置映射。需要此项以启用客户端 TLS。配置映射必须包含名为 ca-bundle.pem 的证书颁发机构(CA)捆绑包,或者默认路由器部署失败。

    clientTLS.clientCA.name

    clientTLS.clientCA 值中引用的配置映射的 metadata.name

    clientTLS.ClientCertificatePolicy

    必需可选 是有效的值。设置为 Required 以启用客户端 TLS。入口控制器只检查边缘终止和重新加密的 TLS 路由的客户端证书。入口控制器无法检查纯文本 HTTP 或 passthrough TLS 路由的证书。

    defaultHTTPVersion

    为入口控制器设置 HTTP 版本。HTTP 1.1 的默认值为 1。建议为 HTTP 2 和 3 设置负载均衡器。

    forwardedHeaderPolicy

    指定入口控制器何时和如何设置 Forwarded ,X- Forwarded -For,X-Forwarded-Host,X-Forwarded-Port,X-Forwarded-Proto, 和 X-Forwarded-Proto-Version HTTP 标头。以下值有效:

    • Append 通过指定入口控制器附加它们来保留任何现有标头。'append' 是默认值。
    • replace 通过指定入口控制器设置标头来删除任何现有标头。
    • IfNone 通过指定入口控制器设置标头(如果未设置标头)来设置标头。
    • 永远不会 通过指定入口控制器来保留任何现有的标头,从而永远不会设置标头。

    httpCompression

    定义 HTTP 流量压缩的策略。

    httpCompression.mimeTypes

    定义应将压缩应用到的 MIME 类型列表。

    • 例如: text/css; charset=utf-8,text/html,text configured, image/svg+xml,application/octet-stream,X-custom/customsub, in the, type/subtype; [;attribute=value] 格式。
    • 有效 类型包括 :application, image, message, multipart, text, video, 或一个自定义类型,前是 X-。要查看 MIME 类型和子类型的完整表示法,请参阅 RFC1341 (IETF Datatracker 文档)。

    httpEmptyRequestsPolicy

    描述在收到请求前连接超时时如何处理 HTTP 连接。此字段允许的值是 RespondIgnore。默认值为 Respond。空请求通常来自负载均衡器健康探测或预分配,通常可以忽略。但是,网络错误和端口扫描也可能导致这些请求。因此,将此字段设置为 Ignore 可妨碍检测或诊断网络问题,并检测入侵尝试。

    • 当策略设置为 Respond 时,入口控制器发送 HTTP 400408 响应,在启用了访问日志时记录连接,并在适当的指标中统计连接。
    • 当策略设置为 Ignore 时,http-ignore-probes 参数将添加到 HAproxy 进程配置中。添加此参数后,ingress 控制器会在不发送响应的情况下关闭连接,然后记录连接或递增指标。

    logEmptyRequests

    指定没有接收和记录请求的连接。logIgnore 是有效的值。空请求通常来自负载均衡器健康探测或预分配,通常可以忽略。但是,网络错误和端口扫描也可能导致这些请求。因此,将此字段设置为 Ignore 可妨碍检测或诊断网络问题,并检测入侵尝试。默认值为 Log

    • 将此值设置为 Log 表示应记录事件。
    • 将此值设置为 Ignore 会在 HAproxy 配置中设置 dontlognull 选项。

    httpErrorCodePages

    描述自定义错误代码页面。要使用此设置,您必须配置 httpErrorCodePages.name 参数。

    httpErrorCodePages.name

    指定自定义错误代码页面。您只能为 503404 页面代码自定义错误。要自定义错误代码页面,请指定 ConfigMap 名称。ConfigMap 对象必须位于 openshift-ingress 命名空间中,且以 error- page-<error code>.http 格式包含键,其中 &lt ;error code& gt; 是一个 HTTP 状态代码。ConfigMap 中的每个值都必须是完整的响应,包括 HTTP 标头。此参数的默认值为 null。

    ports

    定义默认路由器端口。

    ports.http

    默认路由器 http 端口。必须在 1-65535 之间。默认值为 80

    ports.https

    默认路由器 https 端口。必须在 1-65535 之间。默认值为 443。

    routeAdmission

    定义处理新路由声明的策略,如允许或拒绝命名空间之间的声明。

    routeAdmission.namespaceOwnership

    描述如何处理跨命名空间的主机名声明。默认为 InterNamespaceAllowed。以下是有效值:

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

    routeAdmission.wildcardPolicy

    控制入口控制器如何使用配置的通配符策略处理路由。WildcardsAllowedWildcardsDisallowed 是有效的值。默认值为 WildcardsDisallowed

    • WildcardPolicyAllowed 表示入口控制器接受具有任何通配符策略的路由。
    • WildcardPolicyDisallowed 表示入口控制器只接受采用 None 通配符策略的路由。
    重要

    将通配符策略从 WildcardsAllowed 更改为 WildcardsDisallowed 会导致接受路由具有 子域的 通配符策略停止工作。ingress 控制器仅在使用 None 通配符策略重新创建后读取这些路由。

    status

    默认路由器状态。ManagedRemoved 是有效的值。

    tlsSecurityProfile

    tlsSecurityProfile 指定入口控制器的 TLS 连接的设置。如果没有设置,则默认值基于 apiservers.config.openshift.io/cluster 资源。OldCustom 配置集的 TLS 1.0 版本由入口控制器自动转换为 1.1intermediate 是默认设置。

    • 入口控制器的最低 TLS 版本是 1.1。最大 TLS 版本为 1.3。
    注意

    TLSProfile 状态显示配置的安全配置集的密码和最小 TLS 版本。当开发新的密码且发现现有密码不安全时,配置集会被有意改变。根据特定进程可以使用哪些密码,可以减少可用的列表。

    tlsSecurityProfile.custom

    用户定义的 TLS 安全配置集。如果您配置此参数和相关参数,请使用非常小心。

    tlsSecurityProfile.custom.ciphers

    指定在 TLS 握手过程中协商的加密算法。Operator 可能会删除其操作对象不支持的条目。

    tlsSecurityProfile.custom.minTLSVersion

    指定 TLS 握手期间协商的 TLS 协议的最小版本。例如,要使用 TLS 版本 1.1、1.2 和 1.3,请将值设为 VersionTLS11minTLSVersion 的最高有效值为 VersionTLS12

    tlsSecurityProfile.intermediate

    您可以将此 TLS 配置集用于大多数服务。中间兼容性(推荐)

    tlsSecurityProfile.old

    用于向后兼容。旧的向后兼容性

    tlsSecurityProfile.type

    有效值为 IntermediateOldCustom。不支持 Modern 值。

    tuningOptions

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

    tuningOptions.clientFinTimeout

    指定入口控制器在服务器关闭连接前等待客户端响应时打开的连接的时间。默认超时为 1s

    tuningOptions.clientTimeout

    指定入口控制器在等待客户端响应时保持打开的时长。默认超时为 30s

    tuningOptions.headerBufferBytes

    为 ingress 控制器连接会话指定保留多少内存(以字节为单位)。如果为 ingress 控制器启用了 HTTP/2,则必须至少为 16384。如果没有设置,则默认值为 32768 字节。

    重要

    不建议设置此字段,因为 headerBufferMaxRewriteBytes 参数值太小可能会破坏入口控制器。相反,headerBufferMaxRewriteBytes 的值太大可能会导致入口控制器使用比必要更多的内存。

    tuningOptions.headerBufferMaxRewriteBytes

    指定在 HTTP 标头重写和附加 ingress 控制器连接会话时,应保留多少内存(以字节为单位)。headerBufferMaxRewriteBytes 的最小值是 4096headerBufferBytes 必须大于传入的 HTTP 请求的 headerBufferMaxRewriteBytes 值。如果没有设置,则默认值为 8192 字节。

    重要

    不建议设置此字段,因为 headerBufferMaxRewriteBytes 值太小可能会破坏入口控制器和 headerBufferMaxRewriteBytes,它们太大可能会导致入口控制器使用比必要更多的内存。

    tuningOptions.healthCheckInterval

    指定路由器在健康检查之间等待的时间(以秒为单位)。默认值为 5s

    tuningOptions.maxConnections

    指定可为每个 HAProxy 进程建立的最大同时连接数。增加这个值可让每个入口控制器 pod 以额外的系统资源成本处理更多连接。允许的值是 0-1、以及范围为 20002000000 内的任何值,或者字段可以留空。

    • 如果此字段为空或者值为 0, 入口控制器将使用默认值 50000
    • 如果字段的值为 -1,则 HAProxy 进程会根据运行中容器中的可用 ulimits 动态计算最大值。与当前默认值 50000 相比,此进程会产生大量内存用量。
    • 如果字段的值大于当前操作系统限制,则 HAProxy 进程不会启动。
    • 如果您选择了一个离散值,并且路由器 pod 迁移到新节点,则新节点可能没有配置相同的 ulimit。在这种情况下,pod 无法启动。
    • 您可以使用 container_memory_working_set_bytes{container="router",namespace="openshift-ingress"} 指标监控路由器容器的内存用量。
    • 您可以使用 container_memory_ working_set_bytes{container="router",namespace="openshift-ingress",container_processes{container="router",namespace="openshift-ingress",namespace="openshift-ingress"} 指标来监控路由器 容器中的独立 HAProxy 进程。

    tuningOptions.serverFinTimeout

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

    tuningOptions.serverTimeout

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

    tuningOptions.threadCount

    指定每个 HAProxy 进程创建的线程数量。创建更多线程可让每个入口控制器 pod 处理更多连接,而代价是使用更多系统资源。HAProxy 负载均衡器支持最多 64 个线程。如果此字段为空,入口控制器将使用默认值 4 个线程。

    重要

    不建议设置此字段,因为增加 HAProxy 线程数量允许入口控制器 pod 在负载下使用更多 CPU 时间,并防止其他 pod 接收需要执行的 CPU 资源。减少线程数量可能会导致入口控制器性能不佳。

    tuningOptions.tlsInspectDelay

    指定路由器可以保存数据以查找匹配路由的时长。将此值设置为低时,可能会导致路由器回退到边缘终止、重新加密或透传路由的默认证书,即使在使用更好匹配的证书时也是如此。默认检查延迟为 5s

    tuningOptions.tunnelTimeout

    指定隧道连接(包括 websocket)在隧道闲置期间保持打开的时长。默认超时为 1h

  3. 运行以下命令完成任何其他配置,然后启动或重启 MicroShift:

    $ sudo systemctl start microshift
    Copy to Clipboard Toggle word wrap
    $ sudo systemctl restart microshift
    Copy to Clipboard Toggle word wrap

验证

在进行入口配置更改并重启 MicroShift 后,您可以检查路由器 Pod 的年龄,以确保应用更改。

  • 要检查路由器 pod 的状态,请运行以下命令:

    $ oc get pods -n openshift-ingress
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME                              READY   STATUS    RESTARTS   AGE
    router-default-8649b5bf65-w29cn   1/1     Running   0          6m10s
    Copy to Clipboard Toggle word wrap

使用这个流程创建由 MicroShift 配置文件中的 certificateSecret 参数值引用的 secret。此 secret 包含由入口控制器提供的默认证书。

注意

任何使用的证书都会自动与 MicroShift 内置 OAuth 服务器集成。

先决条件

  • 有对 MicroShift 的 root 访问权限。
  • 已安装 OpenShift CLI(oc)。
  • 您的私钥没有加密,或者您已解密它以导入到 MicroShift 中。

流程

  1. 创建包含通配符证书链和密钥的 secret :

    $ oc create secret tls <secret> 
    1
    
         --cert=</path/to/cert.crt> 
    2
    
         --key=</path/to/cert.key> 
    3
    
         -n openshift-ingress
    Copy to Clipboard Toggle word wrap
    1
    <secret > 是包含证书链和私钥的 secret 名称。
    2
    </path/to/cert.crt> 是证书链在本地文件系统中的路径。
    3
    </path/to/cert.key> 是与此证书关联的私钥的路径。
    重要

    证书必须包含显示 csi apps.<nodename>.<domain>subjectAltName 扩展。

  2. 使用新创建的 secret 更新 MicroShift 配置 YAML 中的 certificateSecret 参数值。
  3. 运行以下命令完成任何其他配置,然后启动或重启 MicroShift:

    $ sudo systemctl start microshift
    Copy to Clipboard Toggle word wrap
    $ sudo systemctl restart microshift
    Copy to Clipboard Toggle word wrap

5.2.2. 为入口控制器配置 TLS 安全配置集

您可以通过在 MicroShift 配置 YAML 中设置类型,为 ingress 控制器配置 TLS 安全配置集。

先决条件

  • 有对 MicroShift 节点的 root 访问权限。

流程

  1. 在 MicroShift YAML 配置文件中添加 spec.tlsSecurityProfile 字段。

     ...
    spec:
      tlsSecurityProfile:
        type: Custom 
    1
    
        custom: 
    2
    
          ciphers: 
    3
    
          - ECDHE-ECDSA-CHACHA20-POLY1305
          - ECDHE-RSA-CHACHA20-POLY1305
          - ECDHE-RSA-AES128-GCM-SHA256
          - ECDHE-ECDSA-AES128-GCM-SHA256
          minTLSVersion: VersionTLS11
     ...
    Copy to Clipboard Toggle word wrap
    1
    指定 TLS 安全配置集类型(OldIntermediateCustom)。默认值为 Intermediate
    2
    为所选类型指定适当的字段:
    • old: {}
    • intermediate: {}
    • custom:
    3
    对于 custom 类型,请指定 TLS 密码列表和最低接受的 TLS 版本。
    警告

    如果您选择 自定义 TLS 配置,请使用非常小心。使用自签名 TLS 证书可能会带来安全风险。

  2. 保存文件以使改变生效。
  3. 运行以下命令重启 MicroShift:

    $ sudo systemctl restart microshift
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat