3.5.8. odo service


odo 可使用 Operator 帮助部署服务

可使用 odo catalog 命令找到可用的 Operator 和服务列表。

服务在 组件 上下文中创建,因此在部署服务前运行 odo create 命令。

服务通过以下两个步骤进行部署:

  1. 定义服务并将其定义存储在 devfile 中。
  2. 使用 odo push 命令将定义的服务部署到集群。

3.5.8.1. 创建新服务

要创建新服务,请运行以下命令:

$ odo service create
Copy to Clipboard Toggle word wrap

例如,要创建一个名为 my-redis-service 的 Redis 服务实例,您可以运行以下命令:

输出示例

$ odo catalog list services
Services available through Operators
NAME                      CRDs
redis-operator.v0.8.0     RedisCluster, Redis

$ odo service create redis-operator.v0.8.0/Redis my-redis-service
Successfully added service to the configuration; do 'odo push' to create service on the cluster
Copy to Clipboard Toggle word wrap

此命令在 kubernetes/ 目录中创建 Kubernetes 清单,其中包含服务的定义,此文件从 devfile.yaml 文件引用。

$ cat kubernetes/odo-service-my-redis-service.yaml
Copy to Clipboard Toggle word wrap

输出示例

 apiVersion: redis.redis.opstreelabs.in/v1beta1
 kind: Redis
 metadata:
   name: my-redis-service
 spec:
   kubernetesConfig:
     image: quay.io/opstree/redis:v6.2.5
     imagePullPolicy: IfNotPresent
     resources:
       limits:
         cpu: 101m
         memory: 128Mi
       requests:
         cpu: 101m
         memory: 128Mi
     serviceType: ClusterIP
   redisExporter:
     enabled: false
     image: quay.io/opstree/redis-exporter:1.0
   storage:
     volumeClaimTemplate:
       spec:
         accessModes:
         - ReadWriteOnce
         resources:
           requests:
             storage: 1Gi
Copy to Clipboard Toggle word wrap

示例命令

$ cat devfile.yaml
Copy to Clipboard Toggle word wrap

输出示例

[...]
components:
- kubernetes:
    uri: kubernetes/odo-service-my-redis-service.yaml
  name: my-redis-service
[...]
Copy to Clipboard Toggle word wrap

请注意,所创建的实例的名称是可选的。如果您不提供名称,它将是服务的小写名称。例如,以下命令创建一个名为 redis 的 Redis 服务实例:

$ odo service create redis-operator.v0.8.0/Redis
Copy to Clipboard Toggle word wrap
3.5.8.1.1. 显示清单

默认情况下,在 kubernetes/ 目录中创建一个新清单,从 devfile.yaml 文件引用。可以使用 --inlined 标志在 devfile.yaml 文件中内联清单:

$ odo service create redis-operator.v0.8.0/Redis my-redis-service --inlined
Successfully added service to the configuration; do 'odo push' to create service on the cluster
Copy to Clipboard Toggle word wrap

示例命令

$ cat devfile.yaml
Copy to Clipboard Toggle word wrap

输出示例

[...]
components:
- kubernetes:
    inlined: |
      apiVersion: redis.redis.opstreelabs.in/v1beta1
      kind: Redis
      metadata:
        name: my-redis-service
      spec:
        kubernetesConfig:
          image: quay.io/opstree/redis:v6.2.5
          imagePullPolicy: IfNotPresent
          resources:
            limits:
              cpu: 101m
              memory: 128Mi
            requests:
              cpu: 101m
              memory: 128Mi
          serviceType: ClusterIP
        redisExporter:
          enabled: false
          image: quay.io/opstree/redis-exporter:1.0
        storage:
          volumeClaimTemplate:
            spec:
              accessModes:
              - ReadWriteOnce
              resources:
                requests:
                  storage: 1Gi
  name: my-redis-service
[...]
Copy to Clipboard Toggle word wrap

3.5.8.1.2. 配置服务

如果没有特定的自定义,将使用默认配置创建该服务。您可以使用命令行参数或文件来指定您自己的配置。

3.5.8.1.2.1. 使用命令行参数

使用 --parameters (或 -p)指定您自己的配置。

以下示例使用三个参数配置 Redis 服务:

$ odo service create redis-operator.v0.8.0/Redis my-redis-service \
    -p kubernetesConfig.image=quay.io/opstree/redis:v6.2.5 \
    -p kubernetesConfig.serviceType=ClusterIP \
    -p redisExporter.image=quay.io/opstree/redis-exporter:1.0
Successfully added service to the configuration; do 'odo push' to create service on the cluster
Copy to Clipboard Toggle word wrap

示例命令

$ cat kubernetes/odo-service-my-redis-service.yaml
Copy to Clipboard Toggle word wrap

输出示例

apiVersion: redis.redis.opstreelabs.in/v1beta1
kind: Redis
metadata:
  name: my-redis-service
spec:
  kubernetesConfig:
    image: quay.io/opstree/redis:v6.2.5
    serviceType: ClusterIP
  redisExporter:
    image: quay.io/opstree/redis-exporter:1.0
Copy to Clipboard Toggle word wrap

您可以使用 odo catalog describe service 命令获取特定服务的可能参数。

3.5.8.1.2.2. 使用文件

使用 YAML 清单来配置您自己的规格。在以下示例中,Red Hat Redis 服务配置了三个参数。

  1. 创建清单:

    $ cat > my-redis.yaml <<EOF
    apiVersion: redis.redis.opstreelabs.in/v1beta1
    kind: Redis
    metadata:
      name: my-redis-service
    spec:
      kubernetesConfig:
        image: quay.io/opstree/redis:v6.2.5
        serviceType: ClusterIP
      redisExporter:
        image: quay.io/opstree/redis-exporter:1.0
    EOF
    Copy to Clipboard Toggle word wrap
  2. 在清单中创建服务:

    $ odo service create --from-file my-redis.yaml
    Successfully added service to the configuration; do 'odo push' to create service on the cluster
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat