본문 바로가기

엔지니어

Kubernetes : Kubeadm : Worker 노드 설정

Kubeadm를 설치하여 멀티 노드 Kubernetes 클러스터를 구성합니다.
이 예에서는 다음과 같이 3 개의 호스트를 사용하여 설정합니다.
전제 조건으로 각 노드의 Hostname, MAC address, Product_uuid은 고유해야합니다.
MAC address와 Product_uuid는 일반적으로 물리적 시스템과 일반적인 방법으로 만든 가상 머신이면 이미 고유되어있을 것입니다. Product_uuid은 [dmidecode -s system-uuid 명령으로 확인할 수 있습니다.
-----------+---------------------------+--------------------------+------------
| | |
eth0 | 10.0.0.30 eth0 | 10.0.0.51 eth0 | 10.0.0.52
+----------+-----------+ +-----------+----------+ +-----------+----------+
| [ dlp.srv.world ] | | [ node01.srv.world ] | | [ node02.srv.world ] |
| 마스터 노드 | | 작업자 노드 | | 작업자 노드 |
+----------------------+ +----------------------+ +----------------------+

Worker 노드의 설정을 실시합니다.
[1]사전에 Kubeadm 설치 등 노드 일반적인 설정을 적용 해 둡니다 .
[2] Master 노드에서 초기 설치 한 클러스터에 Join합니다.
Join 할 때 명령은 초기 설치 명령 실행시 마지막에 표시된 [kubeadm join ~ 명령 을 그대로 복사하여 실행하면됩니다.
[root @ node01 ~] # kubeadm join 10.0.0.30:6443 --token ivcdtn.r9qt329oe49nb3b7 --discovery-token-ca-cert-hash sha256 : 2a2bdff5648e6f17bbc60889e8b47656795f2cb2ea959c8dc10b5dcb09d48be5
[preflight] 비행 전 검사 실행.
[경고 FileExisting-crictl] : 시스템 경로에서 crictl을 찾을 수 없음
제안 : github.com/kubernetes-incubator/cri-tools/cmd/crictl을 방문하십시오.
[프리 플라이트] kubelet 서비스 시작
[발견] API 서버 "10.0.0.30:6443"에 연결하려고합니다.
[발견] "https://10.0.0.30:6443"에서 정보를 요청하는 cluster-info discovery 클라이언트를 작성했습니다.
[발견] 고정 된 공개 키에 대해 TLS의 유효성을 검사하기 위해 "https://10.0.0.30:6443"에 정보를 다시 요청
[발견] 클러스터 정보 서명 및 내용이 유효하고 TLS 인증서가 고정 된 루트에 대해 유효성을 검사하고 API Server "10.0.0.30:6443"을 사용합니다.
[발견] API 서버 "10.0.0.30:6443"과 성공적으로 연결되었습니다.

이 노드는 클러스터에 합류했습니다 :

  • 인증서 서명 요청이 마스터에게 전송되고 응답
    받았어요.
  • Kubelet에 새로운 보안 연결 세부 정보가 제공되었습니다.

마스터에서 'kubectl get nodes'를 실행하여이 노드가 클러스터에 참여하는지 확인하십시오.

Successfully established connection ~라고 표시되면 OK

[3] Master 노드에서 노드 정보를 확인해야합니다. 모든 STATUS = Ready이면 OK입니다.
[root @ dlp ~] # kubectl get 노드
이름 상태 역할 연령대
dlp.srv.world 준비 마스터 1 시간 v1.10.0
node01.srv.world 준비 <없음> 4 분 v1.10.0
node02.srv.world 준비 <없음> 2m v1.10.0
[4] Pod를 배포하고 테스트 해 둡니다.
[root @ dlp ~] # kubectl run test-nginx --image = nginx-복제본 = 2-포트 = 80
deployment.apps "test-nginx"가 생성됨
[root @ dlp ~] #kubectl은 포드를 얻습니다 -o 와이드
이름 준비 상태가 연령 IP 노드를 다시 시작 함
test-nginx-959dbd6b6-dkplf 1/1 달리기 0 14m 10.244.1.2 node01.srv.world
test-nginx-959dbd6b6-qhz55 1/1 달리기 0 14m 10.244.2.2 node02.srv.world
[root @ dlp ~] # kubectl 노출 배치 테스트 -nginx
"test-nginx"서비스가 노출됨
[root @ dlp ~] #kubectl은 서비스 테스트 -nginx를 설명합니다
이름 : test-nginx
네임 스페이스 : 기본값
레이블 : run = test-nginx
주석 : <없음>
선택기 : run = test-nginx
유형 : ClusterIP
IP : 10.102.121.104
포트 : 80 / TCP
TargetPort : 80 / TCP
끝점 : 10.244.1.2:80,10.244.2.2:80
세션 선호도 : 없음
이벤트 : <없음>
[root @ dlp ~] # 컬 10.102.121.104
<! DOCTYPE html>

<헤드>

'엔지니어' 카테고리의 다른 글

Podman : 설치  (0) 2019.11.29
Kubernetes : 영구 저장소 설정  (0) 2019.11.28
Kubernetes : Kubeadm : Worker 노드 설정  (0) 2019.11.28
Kubernetes : Kubeadm : Master 노드 설정  (0) 2019.11.28
Kubernetes : Kubeadm : 설치  (0) 2019.11.28
Kubernetes : Minikube : Pod 배포  (0) 2019.11.28