# kind-cluster.yml
kind: Cluster # 카인드 클러스터 설정임을 나타냄.
apiVersion: kind.x-k8s.io/v1alpha4 #KIND의 API 버전을 지정합니다
# containerd의 레지스트리 미러 설정
containerdConfigPatches:
- |-
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."localhost:5001"]
endpoint = ["http://kind-registry:5000"] # 로컬 레지스트리로 프록시
nodes:
- role: control-plane # 컨트롤 플레인 노드 정의
kubeadmConfigPatches:
- |
kind: InitConfiguration
nodeRegistration:
kubeletExtraArgs:
node-labels: "ingress-ready=true" # Ingress Controller를 위한 라벨 추가
extraPortMappings:
- containerPort: 80 # 호스트의 80 포트를 컨테이너의 80 포트로 포워딩
hostPort: 80
protocol: TCP
- containerPort: 443 # 호스트의 443 포트를 컨테이너의 443 포트로 포워딩
hostPort: 443
protocol: TCP
- role: worker # 워커 노드 1
- role: worker # 워커 노드 2
- role: worker # 워커 노드 3
kind: Cluster
kind: Pod
kind: Deployment
kind: Service
apiVersion: kind.x-k8s.io/v1alpha4
는 kind.x-k8s.io에서 지원하는 형식이고 그중에 v1alpha4 를 사용한다는것.
대충 한컴 2010버전 같은 느낌이라고 ..
containerdConfigPatches:
- |-
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."localhost:5001"]
endpoint = ["http://kind-registry:5000"] # 로컬 레지스트리로 프록시
=> 로컬에서 빌드한 이미지를 프라이빗 레지스트리에 올리고 쿠버네티스에 연결해서 테스트를 해보고 싶다.
nodes:
- role: control-plane
kubeadmConfigPatches:
- |
kind: InitConfiguration # 초기설정
nodeRegistration: # 노드 등록 관련 설정
kubeletExtraArgs: # kubelet에 추가할 인자들
node-labels: "ingress-ready=true" # 노드에 라벨 (인그레스 컨트롤러 추가)
extraPortMappings:
- containerPort: 80 # 80을 80으로 매핑
hostPort: 80
protocol: TCP
- containerPort: 443 # 443을 443으로 매핑
hostPort: 443
protocol: TCP
- role: worker # 워커 노드1
- role: worker # 워커 노드1
- role: worker # 워커 노드1
쿠베어드민이 쿠버네티스 초기화 할때만 사용하는 설정