3.4.5. 新しいデータベースに必要なリソースを準備する
Redis データベースがデプロイされる namespace を作成するか、その namespace に切り替えます。
新しい Redis データベースがインストールされる namespace の名前を変数にエクスポートします。既存の namespace を使用することも、新しい namespace を作成することもできます。3scale がインストールされているのと同じ namespace に新しいデータベースをデプロイすることも可能ですが、推奨されません。
REDIS_NAMESPACE=<database-target-namespace>
oc project $REDIS_NAMESPACE
または
oc new-project $REDIS_NAMESPACE
3.4.5.1. Backend Redis リソース リンクのコピーリンクがクリップボードにコピーされました!
Backend コンポーネントの新しい Redis インスタンスのデプロイメント仕様を定義した backend-redis-external.yaml という YAML ファイルをローカルに作成します。
kind: Deployment
apiVersion: apps/v1
metadata:
name: backend-redis-external
labels:
app: backend-redis-external
spec:
replicas: 1
selector:
matchLabels:
deployment: backend-redis-external
template:
metadata:
labels:
deployment: backend-redis-external
spec:
restartPolicy: Always
serviceAccountName: backend-redis-external
schedulerName: default-scheduler
terminationGracePeriodSeconds: 30
securityContext: {}
containers:
- resources:
limits:
cpu: '2'
memory: 32Gi
requests:
cpu: '1'
memory: 1Gi
readinessProbe:
exec:
command:
- container-entrypoint
- bash
- '-c'
- redis-cli set liveness-probe "`date`" | grep OK
initialDelaySeconds: 10
timeoutSeconds: 1
periodSeconds: 30
successThreshold: 1
failureThreshold: 3
terminationMessagePath: /dev/termination-log
name: backend-redis-external
livenessProbe:
tcpSocket:
port: 6379
initialDelaySeconds: 10
timeoutSeconds: 1
periodSeconds: 10
successThreshold: 1
failureThreshold: 3
env:
- name: REDIS_CONF
value: /etc/redis.d/redis.conf
imagePullPolicy: IfNotPresent
volumeMounts:
- name: backend-redis-storage-external
mountPath: /var/lib/redis/data
- name: redis-config-external
mountPath: /etc/redis.d/
terminationMessagePolicy: File
image: 'registry.redhat.io/rhel9/redis-7'
serviceAccount: backend-redis-external
volumes:
- name: backend-redis-storage-external
persistentVolumeClaim:
claimName: backend-redis-storage-external
- name: redis-config-external
configMap:
name: redis-config-external
items:
- key: redis.conf
path: redis.conf
defaultMode: 420
dnsPolicy: ClusterFirst
strategy:
type: Recreate
revisionHistoryLimit: 10
progressDeadlineSeconds: 600
以下の更新を検討してください。
- カスタム値を使用していた場合、またはカスタム値が必要な場合のための、ラベル、アノテーション、および環境変数
- カスタム値を使用していた場合、またはカスタム値が必要な場合のための、制限とリクエスト
- その他の値は要件に応じて変更可能
Backend Redis インスタンスのサービスアカウントを作成し、ラベルを付けます。
oc create serviceaccount backend-redis-external
oc label serviceaccount backend-redis-external app=backend-redis-external
新しい Redis インスタンスの永続ボリューム要求の仕様を定義した backend-redis-storage-external-pvc.yaml という YAML ファイルをローカルに作成します。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: backend-redis-storage-external
labels:
app: backend-redis-external
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
volumeMode: Filesystem
必要に応じてストレージ要求を調整します。
新しい Redis インスタンスの Service の仕様を定義した backend-redis-service.yaml という YAML ファイルをローカルに作成します。
apiVersion: v1
kind: Service
metadata:
name: backend-redis-service
labels:
app: backend-redis-external
spec:
type: ClusterIP
ports:
- port: 6379
targetPort: 6379
protocol: TCP
selector:
deployment: backend-redis-external