
Kubernetes 클러스터를 설정하고 모든 클라이언트(일종의 관리형 클러스터)에 대한 제어 플레인 구성 요소를 숨기고 싶습니다. Kubeadm
Kubelet과 정적 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를 작성해야 합니다.