2-11 실습해보기

황인권·2025년 2월 12일

Kubernetes

목록 보기
18/37

실습 문제

다음과 같은 조건을 만족하는 ReplicaSet을 만들자.

  • Pod가 second-week 네임스페이스에 존재해야 한다.
  • 주어진 이미지를 pull하여 프라이빗 컨테이너 레지스트리에 업로드하여 사용.
    • 이미지는 도커허브 teamspartacontents/k8s_lecture1:second-week-exercise 라는 이름으로 업로드 되어 있다.
    docker pull teamspartacontents/k8s_lecture1:second-week-exercise
    • 해당 이미지는 3000번 포트에 웹서버가 열려있다.
    • 이미지의 이름(태그)를 바꾸는 도커 명령어는 아래와 같다.
    docker tag <이전이미지명> <새로운이미지명>
  • 컨테이너에 아래와 같은 방법으로 환경 변수가 설정되어야 한다.
    • TITLE의 값이 SPARTA여야 하며, ConfigMap을 통해서 해당 환경변수를 설정해야한다.
    • PASSWORD의 값이 1234여야 하며, Secret을 통해서 해당 환경변수를 설정해야 한다.
  • 결과물은 다음과 같이 사용할 수 있어야 한다.
    • 메인 화면에 접속 했을 때 SPARTA STUDENT라는 문구가 출력되어야 한다.
    • Password 입력란에 1234를 입력한 후 제출하면 Conrrect라고 출력되어야 한다.

실습 해설

  1. docker 이미지를 pull하여 컨테이너 레지스트리에 push하기
docker pull teamspartacontents/k8s_lecture1:second-week-exercise
docker tag teamspartacontents/k8s_lecture1:second-week-exercise asia-northeast3-docker.pkg.dev/responsive-task-450008-m7/sample-app/second-week-exercise:1.0.0

docker push asia-northeast3-docker.pkg.dev/responsive-task-450008-m7/sample-app/second-week-exercise:1.0.0


  1. 네임스페이스 생성
kubectl create namespace second-week

  1. 다음과 같이 ConfigMap과 Secret을 정의
apiVersion: v1
kind: ConfigMap
metadata:
  name: second-week-configmap
  namespace: second-week
data:
  TITLE: SPARTA
apiVersion: v1
kind: Secret
metadata:
  name: second-week-secret
  namespace: second-week
data:
  PASSWORD: MTIzNA==
  1. ConfigMap과 Secret을 second-week 네임스페이스에 적용.

  2. 다음과 같이 ReplicaSet을 정의

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: second-week-rs
  namespace: second-week
spec:
  replicas: 3
  selector:
    matchLabels:
      app: second-week-app
  template:
    metadata:
      labels:
        app: second-week-app
    spec:
      containers:
      - name: second-week
        image: asia-northeast3-docker.pkg.dev/argon-depth-429113-t7/kube-study-registry/second-week:1.0.0
        env:
        - name: TITLE
          valueFrom:
            configMapKeyRef:
              name: second-week-configmap
              key: TITLE
        - name: PASSWORD
          valueFrom:
            secretKeyRef:
              name: second-week-secret
              key: PASSWORD
        resources:
          requests:
            cpu: "200m"
            memory: "256Mi"
          limits:
            cpu: "200m"
            memory: "256Mi"
        ports:
          - containerPort: 3000
  1. ReplicaSet을 적용하고 결과를 확인
kubectl apply -f second-week-rs.yaml
kubectl port-forward second-week-rs-77m88 8000:3000 -n second-week




지금까지 배운 Kubectl 명령어 총 정리

profile
inkwon Hwang

0개의 댓글