Sign In

쿠버네티스 클러스터 구성

쿠버네티스 마스터 구성

💬
해당 과정은 마스터 노드에서만 진행 함.
1.
클러스터 매니페스트 파일 생성
kubeadm config print init-defaults > kubeadm-init.yaml
vi kubeadm-init.yaml
2.
매니페스트 설정 변경
apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:
  - system:bootstrappers:kubeadm:default-node-token
  token: abcdef.0123456789abcdef
  ttl: 24h0m0s
  usages:
  - signing
  - authentication
kind: InitConfiguration
localAPIEndpoint:
  advertiseAddress: 192.168.101.201
  bindPort: 6443
nodeRegistration:
  criSocket: unix:///var/run/containerd/containerd.sock
  imagePullPolicy: IfNotPresent
  name: m1.lab1.px.local
  taints: null
---
apiServer:
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns: {}
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: registry.k8s.io
kind: ClusterConfiguration
kubernetesVersion: 1.27.0
networking:
  dnsDomain: cluster.local
  serviceSubnet: 10.96.0.0/12
  podSubnet: 10.224.0.0/16
scheduler: {}
localAPIEndpoint.advertiseAddress
마스터 노드의 IP
nodeRegistration.name
마스터 노드의 호스트명
clusterName
쿠버네티스 클러스터 명
networking.podSubnet
Pod에 할당되는 IP 범위
3.
마스터 노드 구성
kubeadm init --config=kubeadm-init.yaml
4.
kubectl 명령어 사용 권한 부여
mkdir -p $HOME/.kube && \
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config && \
sudo chown $(id -u):$(id -g) $HOME/.kube/config

워커 노드 조인(Join)

💬
해당 과정은 워커 노드 3기 에서만 진행 함.
1.
Join 토큰 생성
kubeadm token create --print-join-command
2.
워커 노드 조인
kubeadm join 192.168.101.201:6443 --token g1ulmw.9xcrzcaj05it1aqy --discovery-token-ca-cert-hash \
  sha256:0b2215b0d0e0a08cbff01b9d34b9f08791cc80e512c98c8493623f4ab3bce36c

CNI 설치

💬
해당 과정은 마스터 노드에서만 진행 함.
1.
Calico YAML 다운로드
wget https://raw.githubusercontent.com/projectcalico/calico/v3.27.2/manifests/calico.yaml --no-check-certificate
2.
Calico 배포
kubectl apply -f calico.yaml

클러스터 구성 확인

1.
클러스터 확인
kubectl get nodes
2.
Pod 상태 확인
kubectl get po -A