기증자 Google 오픈소스 커뮤니티에 쿠버네티스 이제 컨테이너 관리 도구가 선택되었습니다. 도커 런타임뿐만 아니라 컨테이너 및 Rkt 런타임.
전형적인 쿠버네티스 클러스터에는 일반적으로 마스터 노드와 여러 작업자 노드 또는 미니언이 있습니다. 그런 다음 작업자 노드는 마스터 노드에서 관리되므로 클러스터가 중앙 지점에서 관리되도록 합니다.
또한 매우 가벼운 비프로덕션 워크로드에 일반적으로 권장되는 단일 노드 Kubernetes 클러스터를 배포할 수도 있다는 점을 언급하는 것도 중요합니다. 이를 위해 다음을 사용할 수 있습니다. 미니쿠베, 노드의 가상 머신에서 단일 노드 Kubernetes 클러스터를 실행하는 도구입니다.
추천 읽기: CentOS 8에 Kubernetes 클러스터를 설치하는 방법
이 자습서에서는 다중 노드를 살펴보겠습니다. 쿠버네티스 클러스터 설치 센트OS 7 리눅스. 이 자습서는 명령줄 기반이므로 터미널 창에 액세스해야 합니다.
3노드 클러스터는 다음과 같이 보일 것입니다.
을위한 쿠버네티스 작동하려면 컨테이너화 엔진이 필요합니다. 이 설치를 위해 우리는 다음을 사용할 것입니다. 도커 가장 대중적이기 때문입니다.
다음 단계는 마스터 노드.
마스터 노드에서 호스트 이름을 설정하고 DNS 서버가 없으면 /etc/hosts 파일.
# hostnamectl set-hostname 마스터 노드. # 고양이 <> /etc/호스트. 10.128.0.27 마스터 노드. 10.128.0.29 노드-1 작업자-노드-1. 10.128.0.30 노드 2 작업자 노드 2. EOF.
핑할 수 있습니다. 작업자 노드 1 그리고 작업자 노드 2 업데이트된 호스트 파일이 다음을 사용하여 괜찮은지 테스트하려면 핑 명령.
# 핑 10.128.0.29. # 핑 10.128.0.30.
다음으로 비활성화 SE리눅스 방화벽 규칙을 업데이트하십시오.
# setenforce 0. # sed -i --follow-symlinks '/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux.conf # 재부팅합니다.
포트에 다음 방화벽 규칙을 설정합니다. 각 방화벽 cmd 명령, 성공을 반환합니다.
# 방화벽 cmd --permanent --add-port=6443/tcp. # 방화벽 cmd --permanent --add-port=2379-2380/tcp. # 방화벽 cmd --permanent --add-port=10250/tcp. # 방화벽 cmd --permanent --add-port=10251/tcp. # 방화벽 cmd --permanent --add-port=10252/tcp. # 방화벽 cmd --permanent --add-port=10255/tcp. # 방화벽-cmd – 새로고침. # modprobe br_netfilter. # echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables.
추가해야 합니다. 쿠버네티스 리포지토리는 기본적으로 설치되지 않으므로 수동으로 센트OS 7.
고양이 </etc/yum.repos.d/kubernetes.repo. [쿠버네티스] 이름=쿠버네티스. 기본 URL= https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64. 활성화 = 1. gpgcheck=1. repo_gpgcheck=1. gpgkey= https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg. EOF.
이제 패키지 저장소가 준비되었으므로 계속해서 설치할 수 있습니다. kubeadm 그리고 도커 패키지.
# yum install kubeadm docker -y
설치가 성공적으로 완료되면 두 서비스를 모두 활성화하고 시작합니다.
# systemctl은 kubelet을 활성화합니다. # systemctl kubelet을 시작합니다. # systemctl은 도커를 활성화합니다. # systemctl 도커를 시작합니다.
이제 kubernetes 마스터를 초기화할 준비가 되었지만 그 전에 "를 실행하려면 스왑을 비활성화해야 합니다.kubeadm 초기화" 명령.
# 스왑오프 -a.
Kubernetes 마스터 초기화는 "kubeadm 초기화" 실행할 명령입니다.
# kubeadm 초기화.
마지막 줄을 복사하여 어딘가에 저장하고 싶을 수도 있습니다. 작업자 노드.
kubeadm 조인 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5 \ --discovery-token-ca-cert-hash sha256:f996ea3564e6a07fdea2997a1cf8caeddafd6d36
팁: 때때로 이 명령은 인수 (인수) 통과되었으므로 오류가 발생하지 않도록 수정하십시오. 그래서, 당신은 삭제할 것입니다 ‘\’
동반하는 캐릭터 --토큰
최종 명령은 다음과 같습니다.
kubeadm 조인 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5 --discovery-token-ca-cert-hash sha256:f996ea3564e6a07fdea2997a1cf8caeddafd6d066
초기화 쿠버네티스 성공적으로 완료되면 사용자가 클러스터 사용을 시작할 수 있도록 허용해야 합니다. 우리의 경우 이 설치를 다음과 같이 실행하려고 합니다. 뿌리 사용자이므로 계속해서 이 명령을 루트로 실행할 것입니다. 로 변경할 수 있습니다. sudo 활성화된 사용자 sudo를 사용하여 아래를 선호하고 실행합니다.
사용 뿌리, 운영:
# mkdir -p $HOME/.kube. # cp -i /etc/kubernetes/admin.conf $HOME/.kube/config. # chown $(id -u):$(id -g) $HOME/.kube/config.
사용하려면 sudo 활성화된 사용자, 운영:
$mkdir -p $HOME/.kube. $ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config.conf $ sudo chown $(id -u):$(id -g) $HOME/.kube/config.
이제 확인하십시오. kubectl 명령이 활성화됩니다.
# kubectl은 노드를 얻습니다.
이 시점에서, 당신은 또한 상태를 알 수 있습니다 마스터 노드 이다 '준비 안 됨’. 아직 배포하지 않았기 때문입니다. 포드 네트워크 클러스터에.
NS 포드 네트워크 현재 노드 네트워크 위에 배치된 클러스터의 오버레이 네트워크입니다. 포드 전체에 연결할 수 있도록 설계되었습니다.
네트워크 클러스터 배포는 필요에 따라 매우 유연한 프로세스이며 사용할 수 있는 옵션이 많이 있습니다. 설치를 최대한 간단하게 유지하고 싶기 때문에 위브넷 구성이나 추가 코드가 필요하지 않으며 포드당 하나의 IP 주소를 제공하는 플러그인입니다. 더 많은 옵션을 보고 싶으시면 여기에서 확인.
이러한 명령은 포드 네트워크 설정을 가져오는 데 중요합니다.
# export kubever=$(kubectl 버전 | base64 | tr -d '\n') # kubectl 적용 -f " https://cloud.weave.works/k8s/net? k8s-version=$kuber"
이제 귀하의 상태를 확인하면 마스터 노드, 그것은해야한다 '준비가 된’.
# kubectl은 노드를 얻습니다.
다음으로 추가합니다. 작업자 노드 클러스터에.
다음 단계는 작업자 노드. 이 단계는 모든 작업자 노드 가입할 때 쿠버네티스 무리.
너의 작업자 노드 1 그리고 작업자 노드 2, 호스트 이름을 설정하고 DNS 서버가 없는 경우 마스터 및 작업자 노드도 업데이트하십시오. /etc/hosts 파일.
# hostnamectl set-hostname '노드-1' # 고양이 <> /etc/호스트. 10.128.0.27 마스터 노드. 10.128.0.29 노드-1 작업자-노드-1. 10.128.0.30 노드 2 작업자 노드 2. EOF.
핑할 수 있습니다. 마스터 노드 업데이트된 호스트 파일이 괜찮은지 테스트합니다.
다음으로 비활성화 SE리눅스 방화벽 규칙을 업데이트하십시오.
# setenforce 0. # sed -i --follow-symlinks '/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux.conf
포트에 다음 방화벽 규칙을 설정합니다. 모든 firewall-cmd 명령이 성공을 반환하는지 확인하십시오.
# 방화벽 cmd --permanent --add-port=6783/tcp. # 방화벽 cmd --permanent --add-port=10250/tcp. # 방화벽 cmd --permanent --add-port=10255/tcp. # 방화벽 cmd --permanent --add-port=30000-32767/tcp. # 방화벽 cmd --reload. # echo '1' > /proc/sys/net/bridge/bridge-nf-call-iptables.
추가해야 합니다. 쿠버네티스 리포지토리는 미리 설치되어 있지 않으므로 수동으로 센트OS 7.
고양이 </etc/yum.repos.d/kubernetes.repo. [쿠버네티스] 이름=쿠버네티스. 기본 URL= https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64. 활성화 = 1. gpgcheck=1. repo_gpgcheck=1. gpgkey= https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg. EOF.
이제 패키지 저장소가 준비되었으므로 계속해서 설치할 수 있습니다. kubeadm 그리고 도커 패키지.
# yum install kubeadm docker -y
두 서비스를 모두 시작하고 활성화합니다.
# systemctl은 도커를 활성화합니다. # systemctl 도커를 시작합니다. # systemctl은 kubelet을 활성화합니다. # systemctl kubelet을 시작합니다.
이제 토큰이 필요합니다. kubeadm 클러스터에 가입하기 위해 init가 생성되었습니다. 에 복사하여 붙여넣을 수 있습니다. 노드-1 그리고 노드 2 어딘가에 복사했다면.
# kubeadm 조인 10.128.0.27:6443 --token nu06lu.xrsux0ss0ixtnms5 --discovery-token-ca-cert-hash sha256:f996ea3564e6a07fdea2997a1cf8caeddafd6d34
마지막 줄에서 제안한 대로 마스터 노드 그리고 확인 작업자 노드-1 그리고 작업자 노드-2 다음 명령을 사용하여 클러스터에 가입했습니다.
# kubectl은 노드를 얻습니다.
모든 단계가 성공적으로 실행되면 다음과 같이 표시되어야 합니다. 노드-1 그리고 노드 2 준비 상태에서 마스터 노드.
추천 읽기: Kubernetes 클러스터에 Nginx를 배포하는 방법
이 시점에서 우리는 성공적으로 설치를 완료했습니다. 쿠버네티스 클러스터에 센토스 7 그리고 우리는 성공적으로 두 대의 작업자 노드. 이제 포드 생성 및 서비스 배포를 시작할 수 있습니다.