예제 YAML 파일을 사용하여 영구 데이터 스토리지가 있는 방명록 애플리케이션을 배포합니다.
Redis 리더 영구 볼륨 할당
redis-leader-pvc.yaml
파일은 명명된 스토리지 클래스를 참조하는 영구 볼륨 클레임의 예입니다. 이 예제를 사용하려면 스토리지 클래스의 이름을 입력합니다.
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: redis-leader-pvc spec: accessModes: - ReadWriteOnce storageClassName: tkg-storage-class-name resources: requests: storage: 2Gi
Redis 팔로워 영구 볼륨 할당
redis-follower-pvc.yaml
파일은 명명된 스토리지 클래스를 참조하는 영구 볼륨 클레임의 예입니다. 이 예제를 사용하려면 스토리지 클래스의 이름을 입력합니다.
kind: PersistentVolumeClaim apiVersion: v1 metadata: name: redis-follower-pvc spec: accessModes: - ReadWriteOnce storageClassName: tkg-storage-class-name resources: requests: storage: 2Gi
Redis 리더 배포
redis-leader-deployment.yaml
파일은 영구 볼륨이 있는 Redis 리더 배포의 예입니다.
apiVersion: apps/v1 kind: Deployment metadata: name: redis-leader-deployment spec: selector: matchLabels: app: redis role: leader tier: backend replicas: 1 template: metadata: labels: app: redis role: leader tier: backend spec: containers: - name: leader image: redis:6.0.5 resources: requests: cpu: 100m memory: 100Mi ports: - containerPort: 6379 volumeMounts: - name: redis-leader-data mountPath: /data volumes: - name: redis-leader-data persistentVolumeClaim: claimName: redis-leader-pvc
Redis 팔로워 배포
redis-follower-deployment.yaml
파일은 영구 볼륨이 있는 Redis 팔로워 배포의 예입니다.
apiVersion: apps/v1 kind: Deployment metadata: name: redis-follower-deployment labels: app: redis spec: selector: matchLabels: app: redis role: follower tier: backend replicas: 1 template: metadata: labels: app: redis role: follower tier: backend spec: containers: - name: follower image: gcr.io/google_samples/gb-redis-follower:v2 resources: requests: cpu: 100m memory: 100Mi env: - name: GET_HOSTS_FROM value: dns ports: - containerPort: 6379 volumeMounts: - name: redis-follower-data mountPath: /data volumes: - name: redis-follower-data persistentVolumeClaim: claimName: redis-follower-pvc
Redis 리더 서비스
redis-leader-service.yaml
파일은 Redis 리더 서비스의 예입니다.
apiVersion: v1 kind: Service metadata: name: redis-leader labels: app: redis role: leader tier: backend spec: ports: - port: 6379 targetPort: 6379 selector: app: redis role: leader tier: backend
Redis 팔로워 서비스
redis-follower-service.yaml
파일은 Redis 팔로워 서비스의 예입니다.
apiVersion: v1 kind: Service metadata: name: redis-follower labels: app: redis role: follower tier: backend spec: ports: - port: 6379 selector: app: redis role: follower tier: backend
방명록 프런트 엔드 배포
guestbook-frontend-deployment.yaml
파일은 방명록 프런트 엔드 배포의 예입니다.
apiVersion: apps/v1 kind: Deployment metadata: name: guestbook-frontend-deployment spec: selector: matchLabels: app: guestbook tier: frontend replicas: 3 template: metadata: labels: app: guestbook tier: frontend spec: containers: - name: php-redis image: gcr.io/google_samples/gb-frontend:v5 resources: requests: cpu: 100m memory: 100Mi env: - name: GET_HOSTS_FROM value: dns ports: - containerPort: 80
방명록 프런트 엔드 서비스
guestbook-frontend-service.yaml
파일은 방명록 프런트 엔드 로드 밸런서 서비스의 예입니다.
apiVersion: v1 kind: Service metadata: name: guestbook-frontend labels: app: guestbook tier: frontend spec: type: LoadBalancer ports: - port: 80 selector: app: guestbook tier: frontend