본문 바로가기

K8S

POD - 3 (Label, Nodeschedule)

반응형

이 블로그 포스트는 인프런 의 대세는 쿠버네티스 [초급~중급] 강의를 내가 이해하기 편하도록

정리한 자료이다.

https://www.inflearn.com/course/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-%EA%B8%B0%EC%B4%88/dashboard

 

대세는 쿠버네티스 [초급~중급] - 인프런 | 강의

쿠버네티스는 앞으로 어플리케이션 배포/운영에 주류가 될 기술 입니다. 이 강좌를 통해 여러분도 대세에 쉽게 편승할 수 있게 됩니다., - 강의 소개 | 인프런...

www.inflearn.com

앞선 POD 이론 교육에서 진행한 대로 6개의 POD를 각각 라벨을 다르게 생성하여 작성한다.

 

web:dev

apiVersion: v1
kind: Pod
metadata:
  name: bless-1
  labels:
    type: web
    lo: dev
spec:
  containers:
  - name: container
    image: kubetm/init

db:dev

apiVersion: v1
kind: Pod
metadata:
  name: bless-2
  labels:
    type: db
    lo: dev
spec:
  containers:
  - name: container
    image: kubetm/init

server:dev

apiVersion: v1
kind: Pod
metadata:
  name: bless-3
  labels:
    type: server
    lo: dev
spec:
  containers:
  - name: container
    image: kubetm/init

web:prd

apiVersion: v1
kind: Pod
metadata:
  name: bless-4
  labels:
    type: web
    lo: prd
spec:
  containers:
  - name: container
    image: kubetm/init

db:prd

apiVersion: v1
kind: Pod
metadata:
  name: bless-5
  labels:
    type: db
    lo: prd
spec:
  containers:
  - name: container
    image: kubetm/init

server:prd

apiVersion: v1
kind: Pod
metadata:
  name: bless-6
  labels:
    type: server
    lo: prd
spec:
  containers:
  - name: container
    image: kubetm/init

생성된 6개의 pod를 이전 post의 그림처럼 라벨을 지정하여 service 를 연결해 보도록 하겠다.

apiVersion: v1
kind: Service
metadata:
  name: bless-svc-1
spec:
  selector:
    type: web
  ports:
  - port: 8080

web label 만 묶어서 접속할 수 있는 service 를 생성한다.

생성된 서비스를 대시보드에서 클릭하여 정보를 확인하면 아래와 같이 web label 이 설정된 pod 들이 연결된 것을 확인할 수 있다.

apiVersion: v1
kind: Service
metadata:
  name: bless-svc-2
spec:
  selector:
    lo: prd
  ports:
  - port: 8080

해당 서비스는 prd label 만 묶어서 접속할 수 있는 service를 생성한다.

 

Nodeschedule

 

Nodeschedule 기능을 사용하는 것은 Node 에 설정된 label 을 이용한다.

대시보드에서 각 노드에 설정된 라벨을 확인할 수 있고, 직접 노드를 선택할 경우에는 해당 라벨을 파드 생성구문에 넣어 생성하도록 한다.

 

k8s-master 의 label
k8s-node1 의 label

apiVersion: v1
kind: Pod
metadata:
  name: bless-node-sel-1
spec:
  nodeSelector:
    kubernetes.io/hostname: k8s-node1
  containers:
  - name: container
    image: kubetm/init

위 예제는 nodeSelector 를 이용하여 bless-node-sel-1 pod 를 생성하면서 k8s-node1 에 생성하도록 설정하는 예제이다.

 

반응형

'K8S' 카테고리의 다른 글

Docker Image 만들고 K8s Pod 로 생성 - 1  (0) 2023.02.24
SERVICE - 1  (0) 2023.02.14
POD - 2  (0) 2023.02.13
POD - 1  (0) 2023.02.10
loadbalancer external ip pending  (0) 2023.02.10