kubernetes
kubernetes
짱구는굿
2023. 10. 24. 10:20
이름: 리소스의 이름. 단축이름: 리소스의 짧은 별칭 (사용 가능한 경우). API그룹: 리소스가 속한 API 그룹. 네임스페이스: 리소스가 네임스페이스에 속하는지 여부를 나타냅니다 (true는 네임스페이스 범위이고, false는 클러스터 범위입니다). 종류: 리소스의 종류. |
apiVersion: apps/v1 kind: Deployment metadata: name: wordpress-mysql labels: app: wordpress spec: selector: matchLabels: app: wordpress tier: mysql template: metadata: labels: app: wordpress tier: mysql spec: containers: - image: mariadb:10.7 name: mysql env: - name: MYSQL_DATABASE value: wordpress - name: MYSQL_ROOT_PASSWORD value: password ports: - containerPort: 3306 name: mysql --- apiVersion: v1 kind: Service metadata: name: wordpress-mysql labels: app: wordpress spec: ports: - port: 3306 selector: app: wordpress tier: mysql --- apiVersion: apps/v1 kind: Deployment metadata: name: wordpress labels: app: wordpress spec: selector: matchLabels: app: wordpress tier: frontend template: metadata: labels: app: wordpress tier: frontend spec: containers: - image: wordpress:5.9.1-php8.1-apache name: wordpress env: - name: WORDPRESS_DB_HOST value: wordpress-mysql - name: WORDPRESS_DB_NAME value: wordpress - name: WORDPRESS_DB_USER value: root - name: WORDPRESS_DB_PASSWORD value: password ports: - containerPort: 80 name: wordpress --- apiVersion: v1 kind: Service metadata: name: wordpress labels: app: wordpress spec: type: NodePort ports: - port: 80 selector: app: wordpress tier: frontend |
![]() |
![]() |
![]() |
![]() |
apiVersion: apps/v1 kind: Deployment metadata: name: vote spec: selector: matchLabels: service: vote template: metadata: labels: service: vote spec: containers: - name: vote image: ghcr.io/subicura/voting/vote env: - name: REDIS_HOST value: "redis" reids 내용이 6379로 저장 - name: REDIS_PORT value: "6379" livenessProbe: httpGet: path: / port: 80 readinessProbe: httpGet: path: / port: 80 ports: - containerPort: 80 protocol: TCP --- 외부 apiVersion: v1 kind: Service metadata: name: vote spec: type: NodePort ports: - port: 80 nodePort: 31000 protocol: TCP selector: service: vote --- 내용결과 apiVersion: apps/v1 kind: Deployment metadata: name: result spec: selector: matchLabels: service: result template: metadata: labels: service: result spec: containers: - name: result image: ghcr.io/subicura/voting/result env: - name: POSTGRES_HOST value: "db" - name: POSTGRES_PORT value: "5432" livenessProbe: httpGet: path: / port: 80 readinessProbe: httpGet: path: / port: 80 ports: - containerPort: 80 protocol: TCP --- apiVersion: v1 kind: Service metadata: name: result spec: type: NodePort ports: - port: 80 nodePort: 31001 protocol: TCP selector: service: result --- db 연결 apiVersion: apps/v1 kind: Deployment metadata: name: worker spec: selector: matchLabels: service: worker template: metadata: labels: service: worker spec: containers: - name: worker image: ghcr.io/subicura/voting/worker env: - name: REDIS_HOST value: "redis" - name: REDIS_PORT value: "6379" - name: POSTGRES_HOST value: "db" - name: POSTGRES_PORT value: "5432" --- apiVersion: apps/v1 kind: Deployment metadata: name: redis spec: selector: matchLabels: service: redis template: metadata: labels: service: redis spec: containers: - name: redis image: redis ports: - containerPort: 6379 protocol: TCP --- apiVersion: v1 kind: Service metadata: name: redis spec: ports: - port: 6379 protocol: TCP selector: service: redis --- apiVersion: apps/v1 kind: Deployment metadata: name: db spec: selector: matchLabels: service: db template: metadata: labels: service: db spec: containers: - name: db image: postgres:9.4 env: - name: POSTGRES_USER value: "postgres" - name: POSTGRES_PASSWORD value: "postgres" ports: - containerPort: 5432 protocol: TCP --- apiVersion: v1 kind: Service metadata: name: db spec: ports: - port: 5432 protocol: TCP selector: service: db |
![]() |
![]() 투표 화면 vote 화면에서 선택 내용이 redis 에 저장이 된다 |
![]() 결과 화면 redis의 내용이 db로 전달하여 result가 내보낸다 |