Docker image 활용 Pods 생성

Lungnaha·2022년 5월 27일
1

Docker&k8s

목록 보기
6/9

💪 들어가며.

이전 포스트에서 Docker 컨테이너를 이미지로 만들고 이를 Docker hub에 올리는 과정을 다루었습니다.
이번 포스트에서는 hub에 올린 이미지를 활용해서 pod를 생성하는 과정을 다루어보겠습니다.

🦝 실습 환경

Kubernetes v1.19
마스터 노드 1개, 워커 노드 1개
노드 환경 : Centos7, VirtualBox
docker-ce-3:20.10.8

🍘 Secret 생성

먼저, Docker hub에 접근하기 위해 Docker 계정 관련 Secret을 생성해주어야합니다.
아래의 명령어를 통해서 이를 생성하실 수 있습니다.

kubectl create secret docker-registry 시크릿명 --docker-username=도커아이디 --docker-password=도커비밀번호 --docker-server=https://index.docker.io/v2/ --docker-email=도커이메일 

여기서 docker-server 부분을 잘 찾아보셔야합니다.
현재(22.05.28) 기준으로는 해당 명령어가 작동하지만 Docker 자체적으로 해당 부분에 입력해야되는 것이 다를 수 있으므로 잘 생성되지 않거나 문제가 생기면 해당 부분을 잘 찾아보시고 진행해주시기바랍니다.
(저도 찾아보던 자료에서 해당 부분이 달라서 삽질을 조금 했습니다..)

🍙 NodePort로 Service 생성

먼저 제가 작성한 deploy.yaml은 아래와 같습니다.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: station
spec:
  selector:
    matchLabels:
      app: station
  replicas: 1
  template:
    metadata:
      labels:
        app: station
    spec:
      containers:
      - name: station
        image: 도커허브에서 가져오기 원하는 이미지명
        ports:
        - containerPort: 5000
          name: flask-port
        command: ["/bin/sh", "-ec", "while : ; do echo '.'; sleep 5 ; done"]
      imagePullSecrets:
      - name: 시크릿명

아래의 명령어를 통해 Depolyment를 생성할 수 있습니다.

kubectl apply -f deploy.yaml

그리고 이를 외부에서 접근하기 위해 아래의 명령어로 NodePort Service를 만들 수 있습니다.

kubectl expose deployment 배포이름 --type=NodePort --port=5000


위와 같이 NodePort가 잘 생성되었음을 확인할 수 있습니다.

참고로 아래와 같은 명령어로 파드 내부로 접속할 수 있습니다.

kubectl exec -it 파드명 /bin/bash
profile
Long🌈Now😁Happy💖

0개의 댓글