Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- stackdriver exporter 설치
- minikube 설치 및 실행
- 애플리케이션 기본 사용자 인증 정보
- 스위치 4대 기능
- 리소스전체삭제
- 포트 9255 설정
- Prometheus 서버 설정
- prometheus dockerfile
- 리소스삭제
- Prometheus 서버 설치
- vs code로 ssh 접속
- stackdriver exporter
- GCP VM
- 방화벽 오픈
- ADC 사용자 인증
- github 사용법
- GCP 모니터링
- kubectl 설치
- aws-nuke
- github
- compose.yml로 stackdriver-export 서비스 설정
- permission denied 에러 발생
- 정적 웹 사이트 호스팅
- dockerfile로 stackdriver-export이미지 생성
- git
- gke 클러스터 액세스 설정
- 서비스 계정 키 설정
- prometheus 서버 서비스등록
- prometheus.yml 파일 설정
- prometheus 연동
Archives
- Today
- Total
My __ 노트
[ Kubernetes ] 특정 노드에 리소스 배포 - 레이블(labels) 본문
쿠버네티스에서 리소스를 배포하게 되면 쿠버네티스가 알아서 적절한 노드에 리소스를 배포해 줍니다. 하지만 필요에 따라 특정 노드에 특정 리소스를 배포해야 하는 경우도 있으므로 아래 해당 방법에 대해 기재하겠습니다.
작업 환경 : node 3개가 있는 환경에서 특정 노드에 특정 pod를 배포해 보겠습니다.
kubectl get nodes
-------------------------------------------------------------------------------------
NAME STATUS ROLES AGE VERSION
gke-blue-test-default-pool-1 Ready <none> 25h v1.27.3-gke.100
gke-blue-test-default-pool-2 Ready <none> 25h v1.27.3-gke.100
gke-blue-test-default-pool-3 Ready <none> 25h v1.27.3-gke.100
목차
▶ 노드 label 추가
▶ nodeSelector 선언
▶ 최종 확인
▶ 노드 label 추가
node(gke-blue-test-default-pool-1)에 group=test 레이블을 추가하고
node(gke-blue-test-default-pool-2)에 group=prod 레이블을 추가합니다.
kubectl label node <노드네임> Key=Value
$ kubectl label node gke-blue-test-default-pool-1 group=test
------------------------------------------------------------------------
node/gke-blue-test-default-pool-1 labeled
위에서 설정한 Key 값으로 노드를 조회 해보면 아래와 같이 설정된 것을 확인할 수 있습니다.
$ kubectl get nodes -L group
-------------------------------------------------------------------------------------------
NAME STATUS ROLES AGE VERSION GROUP
gke-blue-test-default-pool-1 Ready <none> 25h v1.27.3-gke.100 test
gke-blue-test-default-pool-2 Ready <none> 26h v1.27.3-gke.100 prod
gke-blue-test-default-pool-3 Ready <none> 25h v1.27.3-gke.100
▶ nodeSelector 선언
Yaml 파일 형식으로 생성
(예시) pod 배포 시 node 지정
apiVersion: v1
kind: Pod
metadata:
name: test-app
labels:
group: test
spec:
nodeSelector: # <== nodeSelector로 배포하고 싶은 노드를 특정 시킴
group: test
containers:
- name: test-app-cn
image: nginx:1.14.2
ports:
- containerPort: 8080
resources:
limits:
cpu: "100m"
memory: "120Mi"
command로 생성
[ --overrides='{"spec": {"nodeSelector": {"Key": "Value"}}}' ]
(예시) pod 배포 시 node 지정
kubectl run <pod네임> --image=<이미지> --overrides='{"spec": {"nodeSelector": {"Key": "Value"}}}'
$ kubectl run test-app2 --image=nginx:1.14.2 --overrides='{"spec": {"nodeSelector": {"group": "test"}}}'
▶ 최종 확인
test-app들은 group=test 노드(gke-blue-test-default-pool-1)에
prod-app들은 group=prod 노드(gke-blue-test-default-pool-2)에 배포된 것을 확인할 수 있습니다.
$ kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
prod-app 1/1 Running 0 28m 10.240.2.7 gke-blue-test-default-pool-2 <none> <none>
test-app 1/1 Running 0 28m 10.240.0.14 gke-blue-test-default-pool-1 <none> <none>
test-app2 1/1 Running 0 20s 10.240.2.8 gke-blue-test-default-pool-1 <none> <none>
'Kubernetes' 카테고리의 다른 글
[ Kubernetes ] 레이블(labels) 생성 / 수정 / 조회 / 삭제 (0) | 2023.11.28 |
---|---|
[ Kubernets ] 컨테이너에 환경 변수(Node IP/ Pod IP) 정보 넣기 (0) | 2023.11.27 |
[ Kubernetes ] Pod 생성 / 조회 /삭제 (0) | 2023.11.27 |
[ Kubernetes ] api 오브젝트 목록 조회 & 속성 정보 확인 (0) | 2023.11.27 |
[ WSL -우분투 배포 환경 ] minikube 설치 및 실행 (0) | 2023.09.08 |