3.5.8. odo service
odo 可使用 Operator 帮助部署服务。
可使用 odo catalog 命令找到可用的 Operator 和服务列表。
服务在 组件 上下文中创建,因此在部署服务前运行 odo create 命令。
服务通过以下两个步骤进行部署:
- 定义服务并将其定义存储在 devfile 中。
-
使用
odo push命令将定义的服务部署到集群。
3.5.8.1. 创建新服务 复制链接链接已复制到粘贴板!
要创建新服务,请运行以下命令:
$ odo service create
例如,要创建一个名为 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
此命令在 kubernetes/ 目录中创建 Kubernetes 清单,其中包含服务的定义,此文件从 devfile.yaml 文件引用。
$ cat kubernetes/odo-service-my-redis-service.yaml
输出示例
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
示例命令
$ cat devfile.yaml
输出示例
[...]
components:
- kubernetes:
uri: kubernetes/odo-service-my-redis-service.yaml
name: my-redis-service
[...]
请注意,所创建的实例的名称是可选的。如果您不提供名称,它将是服务的小写名称。例如,以下命令创建一个名为 redis 的 Redis 服务实例:
$ odo service create redis-operator.v0.8.0/Redis
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
示例命令
$ cat devfile.yaml
输出示例
[...]
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
[...]
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
示例命令
$ cat kubernetes/odo-service-my-redis-service.yaml
输出示例
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
您可以使用 odo catalog describe service 命令获取特定服务的可能参数。
3.5.8.1.2.2. 使用文件 复制链接链接已复制到粘贴板!
使用 YAML 清单来配置您自己的规格。在以下示例中,Red Hat Redis 服务配置了三个参数。
创建清单:
$ 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在清单中创建服务:
$ odo service create --from-file my-redis.yaml Successfully added service to the configuration; do 'odo push' to create service on the cluster