K8S 설치 및 클러스터 생성 최고의 자습서 (단일 마스터 멀티태스킹)
먼저, 이 문장 세 가지 핵심 개념을 간단히 살펴보겠습니다.
최소 4G 이상의 메모리가 권장됩니다.
Q: 호스트 이름은 어떻게 확인합니까?
A: 명령 실행 hostname.
Q: 호스트 이름은 어떻게 수정합니까?
A: 영구히 적용되는 방법: 명령 VI /etc/hostname 을 실행하고, 첫 번째 줄 (주석 달기 불가, 제거 필요) 을 제거한 다음 사용자 지정 호스트 이름 (명명 기준 참고) 을 다시 작성하여 재부팅 후 적용합니다.
임시 적용: 다음 명령을 실행합니다
Q: MAC 주소는 어떻게 확인합니까?
대답: IP link 명령을 실행하고 첫 번째 네트워크 카드를 보세요.
Q: product_uuid 를 보려면 어떻게 해야 합니까?
A: sudo cat/sys/class/DMI/id/product _ uuid 명령을 실행합니다.
참고: 포트 범위 30000-32767 은 서비스 포트를 만들기 위해 설정해야 하는 범위입니다 (설정 범위를 벗어나면 제한 프롬프트가 있고 만들기가 실패함). 이는 K8S 에서 규정하고 있습니다.
또한 방화벽을 직접 끄려면 가능합니다.
⑥ 교환을 비활성화해야한다.
총 스왑 수가 0 보다 크면 스왑 분할 영역이 열려 있음을 나타냅니다.
Q: 스왑을 끄려면 어떻게 해야 합니까?
대답: /etc/fstab 파일을 편집하고, 줄 교환 앞에 # 저장을 추가하고, 서버를 재부팅합니다.
파티션 상태를 다시 한 번 확인하면 이미 적용됩니다.
공용 컨테이너 런타임 (런타임):
이 기사에서 사용되는 컨테이너 엔진은 Docker 입니다.
설치 후 버전 보기:
Docker 엔진과 관련된 이상한 예외가 발생할 경우 Docker 를 제거하고 다시 설치할 수 있지만 백업 이미지, 컨테이너, 볼륨 또는 구성 파일이 필요한지 확인해야 합니다.
Docker 엔진을 제거하는 단계는 다음과 같습니다.
① Docker 엔진, CLI 및 Containerd 패키지 제거:
② 호스트의 이미지, 컨테이너, 볼륨 또는 사용자 지정 프로필은 자동으로 삭제되지 않습니다. 모든 미러, 컨테이너 및 볼륨 삭제:
③ 프로필에 잘못된 문자가 포함되어 있으면 시동이 실패할 수 있으므로 삭제하고 재구성해야 합니다.
이 시점에서 Docker 엔진이 제거되었습니다.
공식 홈페이지는 구글의 백승원을 사용한다. 국내에서는 연결할 수 없기 때문에 알리가 제공하는 백승원으로 바뀌었다.
① 설치
설치 정보에서 알 수 있듯이 버전 번호는 1.22 입니다.
설치:
Kubeadm x86 _ 641.22.4-0 kubernetes 9.3 미터
Kube CTL x86 _ 641.22.4-0 kubernetes 9.7m
쿠베르레트 x86_64 1.22.4-0 쿠베르네트 20 미터
② 시작.
이것은 운전기사입니다. Cgroup 과 cgroupfs 를 혼동하지 않도록 주의하십시오.
공식 문자 한 단락을 인용하다
Kubean ADM 은 kubelet 을 시스템 서비스로 관리하기 때문에 cgroupfs 드라이버 대신 Kubean ADM 기반 설치에 systemd 드라이버를 사용하는 것이 좋습니다
Kubeadm 은 기본적으로 systemd 드라이버를 사용하고, Dell 의 docker 기본 드라이버는 cgroupfs(docker 정보 보기 가능) 이므로 Docker 드라이버를 systemd 로 변경해야 합니다.
① Docker 구성 파일을 편집하십시오.
② Docker 서비스 재시작
Docker info 가 드라이버 정보를 다시 한 번 살펴보면 systemd 가 됩니다.
작업자 노드의 최소 구성은 여기에 있습니다.
① 미러 소스 매개 변수 설명
기본적으로 kubeadm 은 k8s.gcr.io 창고에서 이미지를 가져옵니다. 국내에서는 불가능합니다. 공식 문서에는 k8s.gcr.io 대신 다른 image 저장소를 사용할 수 있다고 명시되어 있습니다
-image-repository 미러 저장소 주소
다음으로 국내의 거울원을 찾아 간단한 분석을 했다.
위의 통계를 바탕으로 나는 아리운의 미러 소스를 선택했다.
②IP 주소 범위 매개 변수 설명
-pod-network-CIDR =192.168.0.0/16
참고:192.168.0.0/16 이 이미 네트워크에서 사용 중인 경우 다른 pod 네트워크 CIDR 을 선택하고 위 명령의 을 대체해야 합니다
클러스터 초기화 명령:
데모 기계를 사용하고 있기 때문에 쉽게 참조할 수 있도록 전체 실행 정보를 여기에 게시했습니다. 평소 업무에서는 민감한 정보 보호에 주의해야 합니다 (제 IP 주소 범위는 아래 기능 데모에 맞게 조정되어 있습니다. 첫 번째 init 는 미러 파일을 다운로드해야 합니다. 보통 몇 분 정도 걸립니다).
위에 표시된 대로 클러스터가 성공적으로 초기화되었습니다. 이때 위의 실행 결과에 대한 작업 프롬프트의 마지막 부분에 주의해야 합니다. 초기화에 성공한 후 수행해야 할 세 가지 단계를 표시했습니다.
주: 초기화에 성공한 후 매개변수를 조정해야 하는 경우 kubeadm reset 을 실행하여 kubeadm init 또는 kubeadm join 의 변경 사항을 가능한 한 복원할 수 있습니다.
클러스터 사용을 시작하려면 일반 사용자로 다음 명령을 실행해야 합니다.
클러스터 사용을 시작하기 전에 일반 사용자 (루트가 아님) 인 경우 다음 명령을 실행해야 합니다.
또는 루트 사용자인 경우 다음을 실행할 수 있습니다.
또는 루트 사용자를 사용하는 경우 다음 명령을 실행할 수 있습니다.
(참고: 내보내기는 일시적인 효과일 뿐입니다. 즉, 로그인할 때마다 한 번씩 수행해야 합니다. ) 을 참조하십시오
네트워크 구성은 Pod 의 네트워크이고, 내 네트워크 플러그인은 calico 입니다.
Cidr 은 IP 주소 범위입니다. Podcdr192.168.0.0/16 을 사용하는 경우 다음 단계로 건너뛰십시오.
그러나 이 문서에 사용된 PODCDR 은192.100.0/16 이므로 목록에서 CALICO_IPV4POOL_CIDR 변수를 취소해야 합니다. (형식과 정렬을 확인합니다. ) 을 참조하십시오
필요에 따라 목록을 사용자 정의할 수 있습니다. 필요하지 않으면 일반적으로 이 단계를 건너뜁니다.
모든 작업자 노드에서 join 명령을 실행합니다 (복제 전 초기화 성공 후 반환된 join cluster 명령은 모든 작업자 노드에서 실행됩니다).
마스터 노드에 있는 모든 노드의 상태를 봅니다.
여기에 이미 클러스터를 만들었습니다.
마지막으로 K8S 시각화 인터페이스인 kubernetes-dashboard 를 설치해 일상적으로 사용할 수 있도록 하겠습니다.
① YAML 파일 다운로드.
② YAML 파일을 수정하고 유형 및 노드 포트를 추가하여 외부에서 서비스에 액세스할 수 있도록 합니다.
③ 설치 및 검사 작업.
④ 신규 사용자 생성
파일을 작성한 후 저장하고 적용합니다.
⑤ 인터페이스 로그인 토큰을 얻는다.
⑥ 대시 보드에 로그인하십시오.
192.168.189.128 은 제 주 서버 IP 입니다. https 를 사용해야 하고 id 를 사용할 수 없다는 점에 유의해야 합니다
생성된 토큰을 입력 상자에 복사한 다음 Login 을 클릭합니다.
대시보드 설치 구성이 완료되었습니다.
Q: 리소스를 보려면 어떻게 해야 합니까?
A: 주 서버에서 다음 명령을 실행하여 리소스를 봅니다 (-o wide 는 보다 자세한 정보를 표시함을 나타냄).
① 모든 노드 보기
② 모든 네임 스페이스 보기
③ 네임 스페이스에서 포드를 확인하십시오.
④ 모든 네임 스페이스 뷰 창.
⑤ 네임 스페이스에서 포드 작동 상태를 실시간으로 확인하십시오.
Q: kubeadm join 에 예외 발생 [오류 포트-10250]: 포트 10250 이 사용 중입니다. 어떻게 해결합니까?
답: 이전에 가입에 실패했기 때문에 kubeadm 재설정을 해야 다시 가입할 수 있기 때문입니다.
Q: 가상 시스템에서 테스트하는 동안 네트워크 카드가 갑자기 사라지는 문제를 어떻게 해결합니까 (문제 기록)?
대답:
① ens 로 시작하는 누락된 네트워크 카드 정보 확인 (옵션 단계)
프로필 -a
② 다음 명령을 실행하여 문제를 해결하십시오.
Q: K8S 버전을 보려면 어떻게 해야 합니까?
A: kubectl 버전
Q: join 명령이 잊혀지거나 만료되면 어떻게 합니까?
대답:
만료되지 않는 을 (를) 생성합니다.
24 시간의 세대 노화
Q: Pod 가 계속 재부팅되고 다른 오류 메시지가 없으면 어떻게 합니까?
A: 일반적으로 클러스터에 마스터 노드가 하나만 있고 작업자 노드가 없기 때문입니다. 기본적으로 마스터 노드 만들기는 얼룩 져 있습니다. 즉, 새 pod 를 예약할 수 없습니다. 필요하다면 (물론 권장되지 않음) 모판의 얼룩을 삭제해야 한다. 얼룩을 제거하려면 다음 명령을 실행할 수 있습니다.
다음을 반환해야 합니다.