-
kuberneteskubernetes 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: frontendapiVersion: 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가 내보낸다'kubernetes' 카테고리의 다른 글
클러스터 tomcat 배포 (0) 2023.10.27 아파치, 워드프레스, mysql (0) 2023.10.26 클러스터 생성 (0) 2023.10.25 Kubernetes (ingress) (0) 2023.10.24 kubernetes (0) 2023.10.23