kubeadm을 사용하여 마스터 노드 등록 없이 제어 평면 배포

kubeadm을 사용하여 마스터 노드 등록 없이 제어 평면 배포

Kubernetes 클러스터를 설정하고 모든 클라이언트(일종의 관리형 클러스터)에 대한 제어 플레인 구성 요소를 숨기고 싶습니다. KubeadmKubelet과 정적 Pod를 사용하여 이 구성 요소를 실행하면 Node 및 Pod 리소스를 API 서버에 등록하여 모든 사용자가 ClusterRole마스터 노드 및 Pod를 나열하고 관리할 수 있습니다.

kubeadm제어 플레인을 부트스트랩하고 Kubelet 에이전트를 중지하고 마스터 노드 리소스를 삭제할 수 있지만 이 방법으로는 충돌이 발생할 경우 구성 요소를 업그레이드하고 Kubelet을 사용하여 포드를 복구할 수 없는 것 같습니다 .

Kubernetes 클러스터에서 제어 플레인을 실행할 수 있습니까? kubeadm아니면 이 경우 자체 계측기를 사용해야 합니까?

답변1

kubeadm을 사용하여 Kubernetes 클러스터에서 제어 평면을 실행할 수 있나요?

짧은 대답: 아니요, 불가능합니다.

그렇다면 내 도구를 사용해야 할까요?

네, 그것이 이 상황의 해결책이 될 것입니다. 자신만의 해결책을 찾았다면 자유롭게 답변으로 작성해 주세요.

해결 방법으로 별도의 제어 영역을 생성해 볼 수 있습니다(예:Kubernetes는 어려운 방법입니다) 그런 다음kubeadm join. 그러나 이러한 유형의 구성은 수행하기가 복잡하다는 점도 알아야 합니다. 또한 보세요이 블로그 페이지.

비슷한 주제도 참조하세요:

작업자 노드가 제어 플레인에 대한 네트워크 액세스 권한을 갖고 있는 한 Kubernetes 외부에서 Kubernetes 제어 플레인을 실행할 수 있습니다. 이 접근 방식은 대부분의 관리형 Kubernetes 솔루션에서 사용됩니다.

이 페이지에 대해서도 살펴보십시오.노드 자체 등록.

편집: 다른 가능한 것을 발견했습니다해결 방법.

편집 2: 이지도 시간당신도 도움이 될 것입니다.

답변2

결국 저는 kubeadm제어 플레인 구성 요소를 Unix 서비스로 배포하고 Kubernetes 클러스터에서 실행하는 옵션을 추가하여 다시 작성했습니다.

관심있으신 분들은 꼭 보세요홍보귀하의 요구 사항에 맞게 채택하십시오. 사용하는 방법:

# build the updated kubeadm
make WHAT=cmd/kubeadm KUBE_BUILD_PLATFORMS=linux/amd64

# install the control plane components
wget -q --show-progress --https-only --timestamping \
  "https://storage.googleapis.com/kubernetes-release/release/v1.21.0/bin/linux/amd64/kube-apiserver" \
  "https://storage.googleapis.com/kubernetes-release/release/v1.21.0/bin/linux/amd64/kube-controller-manager" \
  "https://storage.googleapis.com/kubernetes-release/release/v1.21.0/bin/linux/amd64/kube-scheduler" \
  "https://storage.googleapis.com/kubernetes-release/release/v1.21.0/bin/linux/amd64/kubectl"

chmod +x kube-apiserver kube-controller-manager kube-scheduler kubectl
sudo mv kube-apiserver kube-controller-manager kube-scheduler kubectl /usr/local/bin/

wget -q --show-progress --https-only --timestamping \
  "https://github.com/etcd-io/etcd/releases/download/v3.4.15/etcd-v3.4.15-linux-amd64.tar.gz"

tar -xvf etcd-v3.4.15-linux-amd64.tar.gz
sudo mv etcd-v3.4.15-linux-amd64/etcd* /usr/local/bin/

# run kubeadm with enabled service hosting option
kubeadm init --service-hosting

Cluster API를 사용하는 경우 자체 배포를 지원하려면 자체 제어 플레인 컨트롤러와 CRD를 작성해야 합니다.

관련 정보