Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

7.3.2. 指定每个项目自定义持续时间

除了为运行一次 pod 指定全局最长持续时间外,管理员还可以向特定项目添加注解(openshift.io/active-deadline-seconds-override),以覆盖全局默认值。

  • 对于新项目,在项目 specification .yaml 文件中定义注解。

    apiVersion: v1
    kind: Project
    metadata:
      annotations:
        openshift.io/active-deadline-seconds-override: "1000" 1
      name: myproject
    1
    将运行一次 pod 的默认活跃期限秒数覆盖为 1000 秒。请注意,覆盖的值必须以字符串形式指定。
  • 对于现有项目,

    • 运行 oc edit 并添加 openshift.io/active-deadline-seconds-override:1000 注解。

      $ oc edit namespace <project-name>

      或者

    • 使用 oc patch 命令:

      $ oc patch namespace <project_name> -p '{"metadata":{"annotations":{"openshift.io/active-deadline-seconds-override":"1000"}}}'

7.3.2.1. 部署 Egress Router Pod

例 7.1. Egress 路由器的 Pod 定义示例

apiVersion: v1
kind: Pod
metadata:
  name: egress-1
  labels:
    name: egress-1
  annotations:
    pod.network.openshift.io/assign-macvlan: "true"
spec:
  containers:
  - name: egress-router
    image: openshift3/ose-egress-router
    securityContext:
      privileged: true
    env:
    - name: EGRESS_SOURCE 1
      value: 192.168.12.99
    - name: EGRESS_GATEWAY 2
      value: 192.168.12.1
    - name: EGRESS_DESTINATION 3
      value: 203.0.113.25
  nodeSelector:
    site: springfield-1 4
1
集群管理员保留的节点子网上的 IP 地址,供此 pod 使用。
2
值与节点本身使用的默认网关相同。
3
与 pod 的连接会被重定向到 203.0.113.25,源 IP 地址为 192.168.12.99
4
pod 只会部署到具有标签站点 Springfield-1 的节点。

pod.network.openshift.io/assign-macvlan 注释 在主网络接口上创建一个 Macvlan 网络接口,然后在启动 egress-router 容器前将它移到 pod 的网络命名空间中。

注意

保留 "true" 上的引号。省略它们将导致错误。

pod 包含一个容器,它使用 openshift3/ose-egress-router 镜像,该容器会特权运行,以便它可以配置 Macvlan 接口并设置 iptables 规则。

环境变量告知 egress-router 镜像要使用的地址;它将配置 Macvlan 接口,以将 EGRESS_SOURCE 用作 其 IP 地址,并将 EGRESS_GATEWAY 作为其网关。

设置 NAT 规则,以便将到 Pod 集群 IP 地址上的任何 TCP 或 UDP 端口的连接重定向到 EGRESS_DESTINATION 上的相同端口。

如果集群中只有部分节点能够声明指定的源 IP 地址并使用指定的网关,您可以指定一个 nodeNamenodeSelector 来表示哪些节点可以接受。