kubernetes - 동일한 노드에 두개의 컨테이너 실행

FromCloud·2023년 6월 22일
0

Kubernetes & Docker

목록 보기
11/12

사실 권장하는 방법은 아니지만 그래도 구조를 확인하기 위해서 매니페스트 파일을 만들어 한번 확인을 해보았다

vi sp-pod-apache2.yml

---
apiVersion: v1
kind: Pod
metadata:
  name: apache
  labels:
    app: web
spec:
  nodeName: node2
  containers:
  - name: apache
    image: httpd
    ports:
    - containerPort: 80
    imagePullPolicy: IfNotPresent
  - name: alpine
    image: alpine
    command: ["/bin/sh", "-c", "while true; do sleep 1000; done"]
    imagePullPolicy: IfNotPresent

몇가지 추가된 항목들이 있다

  • labels: 라벨을 지정해주기 위해서 추가
  • nodeName: <노드번호지정> 노드번호를 지정해주면 랜덤으로 생성하는 것이 아닌 내가 선택한 노드에 생성이 된다
  • imagePullPolicy: 쿠버네티스도 도커허브에서 이미지를 pull해와야 하는데 그 방법을 지정해주는 것이다
    • IfNotPresent: 이미지파일이 있으면 로컬에 있는 이미지파일사용, 이미지파일이 로컬에 없다면 도커허브에서 이미지를 가져와서 사용을 하는것
    • Always: 항상 도커허브에서 이미지를 불러와서 새로운 컨테이너를 생성
    • Never: 오직 로컬에 있는 이미지 파일만 사용한다는 뜻

매니페스트 파일을 저렇게 생성을 하면 컨테이너 안에 컨테이너가 생성이 되는데 그러기 위해선 command를 넣어줘야 실행이 된다

접속은 똑같이 exec를 이용하여 접속


여기서 나오는 --dry-run=server의 의미는 컨테이너를 실행은 시키지만 사실상 테스트만 해보고 실행을 직접시키는 것이 아니다
즉, 테스트를 해보고 결과값이 created(server dry run)이라는 것이 출력이 되면 테스트에 성공한것이고 실행을 하면 정상적으로 실행이 잘된다는 것이다

kubectl describe po apache

profile
매일 발전하는 Cloud Engineer

0개의 댓글