[Kubernetes] Deploy MySQL

  • 컨테이너 이미지가 존재한다는 가정하에 가능하다.
  • 만약 이미지가 없다면 Docker Hub에서 들고온다. (https://hub.docker.com/search?image_filter=official&type=image)
  • Docker Hub의 공식적인 이미지가 아닌 것은 직접 만들어야 하며, 그 이미지를 Docker Hub에 올릴 수 있다. (물론 전체 공개이며, 개인적으로 사용하고 싶다면 Private를 구매해야 한다.)

kubectl create or run #

  • run을 통해 이미지와 replicas 등 스펙들을 설정할 수 있다.
1kubectl run mysql-test --image=mysql:5.7.8 --port=3306 --replicas=1 --env="MYSQL_ROOT_PASSWORD=testpw" --env="MYSQL_DATABASE=testdb"

kubectl apply #

1kubectl apply -f mysql-test.yaml mysql-test

yaml을 통한 명령어 #

yaml을 통해 세부적으로 작성하기 편하며, 혹시나 pod에 대한 속성을 수정할 일이 있다면, 이전에는 어떻게 구성하였는지 확인하기 위해 yaml파일을 폴더 별로 관리를 추천한다.

 1apiVersion: v1
 2kind: Service
 3metadata:
 4  name: mysql-test
 5spec:
 6  ports:
 7  - port: 3306
 8  selector:
 9    app: mysql
10---
11apiVersion: apps/v1 # for versions before 1.9.0 use apps/v1beta2
12kind: Deployment
13metadata:
14  name: mysql-test
15spec:
16  selector:
17    matchLabels:
18      app: mysql
19  strategy:
20    type: Recreate
21  template:
22    metadata:
23      labels:
24        app: mysql
25    spec:
26      nodeName: kube-node-1
27      containers:
28      - image: mysql:5.7.8
29        name: mysql-test
30        env:
31          # Use secret in real usage
32        - name: MYSQL_ROOT_PASSWORD
33          value: testpw
34        ports:
35        - containerPort: 3306
36          name: mysql-test
Advertisement