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