7.5.4.2.4. 使用命令行创建服务


您可以使用命令行创建服务并将其与虚拟机 (VM) 关联。

先决条件

  • 您已将集群网络配置为支持该服务。

流程

  1. 编辑 VirtualMachine 清单,为创建服务添加标签。在 spec.template.metadata.labels 小节中添加 special: key

    apiVersion: kubevirt.io/v1
    kind: VirtualMachine
    metadata:
      name: example-vm
      namespace: example-namespace
    spec:
      running: false
      template:
        metadata:
          labels:
            special: key
    # ...
    注意

    虚拟机上的标签会传递到 pod。special: key 标签必须与 Service 清单的 spec.selector 属性中的标签匹配。

  2. 保存 VirtualMachine 清单文件以应用更改。
  3. 创建 Service 清单以公开虚拟机:

    apiVersion: v1
    kind: Service
    metadata:
      name: example-service
      namespace: example-namespace
    spec:
    # ...
      selector:
        special: key
      type: NodePort
      ports:
        protocol: TCP
        port: 80
        targetPort: 9376
        nodePort: 30000
    • spec.selector 定义添加到 VirtualMachine 清单的 spec.template.metadata.labels 小节中的标签。
    • spec.type 通过公开的方式定义服务的类型。选择 ClusterIPNodePortLoadBalancer 之一。
    • spec.ports 定义您要从虚拟机公开的网络端口和协议的集合。
  4. 保存 Service 清单文件。
  5. 运行以下命令来创建服务:

    $ oc create -f example-service.yaml
  6. 重启虚拟机以应用更改。

验证

  • 查询 Service 对象以验证它是否可用:

    $ oc get service -n example-namespace
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部