16.5. 在 Outpost 中创建用户工作负载


将 AWS VPC 集群中的 OpenShift Container Platform 扩展为 Outpost 后,您可以使用带有标签 node-role.kubernetes.io/outposts 的边缘计算节点在 Outpost 中创建用户工作负载。

先决条件

  • 您已将 AWS VPC 集群扩展到 Outpost。
  • 您可以使用具有 cluster-admin 权限的账户访问集群。
  • 已安装 OpenShift CLI(oc)。
  • 您已创建了部署与 Outpost 环境兼容的边缘计算机器的计算机器集。

流程

  1. 为您要部署到边缘子网中边缘计算节点的应用程序配置 Deployment 资源文件。

    Deployment 清单示例

    kind: Namespace
    apiVersion: v1
    metadata:
      name: <application_name> 1
    ---
    kind: PersistentVolumeClaim
    apiVersion: v1
    metadata:
      name: <application_name>
      namespace: <application_namespace> 2
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 10Gi
      storageClassName: gp2-csi 3
      volumeMode: Filesystem
    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: <application_name>
      namespace: <application_namespace>
    spec:
      selector:
        matchLabels:
          app: <application_name>
      replicas: 1
      template:
        metadata:
          labels:
            app: <application_name>
            location: outposts 4
        spec:
          securityContext:
            seccompProfile:
              type: RuntimeDefault
          nodeSelector: 5
            node-role.kubernetes.io/outpost: ''
          tolerations: 6
          - key: "node-role.kubernetes.io/outposts"
            operator: "Equal"
            value: ""
            effect: "NoSchedule"
          containers:
            - image: openshift/origin-node
              command:
               - "/bin/socat"
              args:
                - TCP4-LISTEN:8080,reuseaddr,fork
                - EXEC:'/bin/bash -c \"printf \\\"HTTP/1.0 200 OK\r\n\r\n\\\"; sed -e \\\"/^\r/q\\\"\"'
              imagePullPolicy: Always
              name: <application_name>
              ports:
                - containerPort: 8080
              volumeMounts:
                - mountPath: "/mnt/storage"
                  name: data
          volumes:
          - name: data
            persistentVolumeClaim:
              claimName: <application_name>

    1
    为应用程序指定一个名称。
    2
    为应用程序指定一个命名空间。应用程序命名空间可以与应用程序名称相同。
    3
    指定存储类名称。对于边缘计算配置,必须使用 gp2-csi 存储类。
    4
    指定标签来标识 Outpost 中部署的工作负载。
    5
    指定以边缘计算节点为目标的节点选择器标签。
    6
    指定与边缘计算机器计算机器集中的 keyeffects 污点匹配的容限。设置 valueoperator,如下所示。
  2. 运行以下命令来创建 Deployment 资源:

    $ oc create -f <application_deployment>.yaml
  3. 配置 Service 对象,将 pod 从目标边缘计算节点公开到在边缘网络中运行的服务。

    Service 清单示例

    apiVersion: v1
    kind: Service 1
    metadata:
      name:  <application_name>
      namespace: <application_namespace>
    spec:
      ports:
        - port: 80
          targetPort: 8080
          protocol: TCP
      type: NodePort
      selector: 2
        app: <application_name>

    1
    定义 service 资源。
    2
    指定要应用到受管 pod 的标签类型。
  4. 运行以下命令来创建 Service CR:

    $ oc create -f <application_service>.yaml
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.