Post

[Kubernetes] mysql pod 생성

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

kubectl create or run

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

kubectl apply

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

yaml을 통한 명령어

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

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