공부합시다!/Kubernetes

Kubernetes (K8S):실습1: 동일POD내의 wordpress + mysql

간서치 2022. 12. 23. 10:47
728x90

모든 실습의 끝은 wordpress + mysql 접속 입니다.

오늘은 단일 pod내에서 wordress container와 mysql:5.7 container를 생성,

pod를 nodeport로 연결해서 외부에 서비스하는 실습을 진행하겠습니다.

동일 pod내애서 두 개이상의 container를 실행하는 것을 MultiContainer라고 합니다. 기억해두세요!

 -> Multi Container 유형

  1. sidecar
  2. adapter
  3. ambassador

K8S에서는 pod에는 한 개의 Container를 지향합니다. 이런 구성은 권장하지 않습니다만 학습용으로!

아 그리고 꼭 kubectl cheat sheet 한번들 읽어 보세요!

https://kubernetes.io/docs/reference/kubectl/cheatsheet/

 

1. pod 생성

2. nodeport service 연결

3. Test 

순서로 진행하겠습니다.

 

1. pod 생성

 1.1. yaml 파일 

apiVersion: v1
kind: Pod
metadata:
  name: word-rep
  namespace: 1team
  labels:
    run: myword
spec:
  containers:
  - name: word
    image: wordpress
    env:
    - name: WORDPRESS_DB_HOST
      value: word-rep:3306
    - name: WORDPRESS_DB_NAME
      value: wordpress
    - name: WORDPRESS_DB_USER
      value: root
    - name: WORDPRESS_DB_PASSWORD
      value: It12345!
    ports:
    - containerPort: 80
  - name: mysql
    image: mysql:5.7
    env:
    - name: MYSQL_ROOT_PASSWORD
      value: It12345!
    - name: MYSQL_DATABASE
      value: wordpress
    - name: MYSQL_ROOT_HOST
      value: '%'
    ports:
    - containerPort: 3306

 

 1.2. vi wordsql.yml

 

 1.3. wordsql.yml을 이용해서 pod 생성

# kubectl create namespace 1team
# kubectl apply -f wordsql.yml

 

 1.4. pod 확인

# kubectl get pods -n 1team

 1.5. pod내의 Container 상태 확인

# kubectl describe pods -n 1team

 1.6. word와 mysql container 정보 확인

 

 

2. nodeport service 연결

 2.1. nodeport에 기본값으로 연결합니다.

# kubectl expose pod word-rep -n 1team --type=NodePort

 2.2. 서비스 생성 확인

# kubectl get service -n 1team

 

3. Test 

 3.1. master or work node IP:NodePort port입력 후 접속

 3.2. wordpress 설정

 

 

자 그럼 동일 POD내 wordpress + mysql 구성을 마쳤습니다.

반드시 명령어로도 해보시고 yaml 파일만으로도 구성해 보시기 바랍니다.

728x90