Rancher2.0을 사용하여 초고속으로 kubernetes 클러스터를 구축했을 때의 메모

소개



Rancher2.0이 나왔기 때문에 시도했다.
실제로 해보고, 초고속으로 환경이 일어나,
내 안에서 격진이 달렸기 때문에 쓰고 싶어졌다.
※이번은 EC2로 만들어 보았지만,
별도로 EKS라고 의지하지 않기 때문에,
지역이나 클라우드 서비스, 가상 머신 또는 물리적 머신인지 여부는
 영향을 받지 않는 방법입니다.

Rancher는 무엇입니까?



k8s를 정리해 관리할 수 있는 소프트.
드디어 수동 구축하면 귀찮은 k8s의 설치를 자동화해 준다.

절차



여기에서 설치 절차로 들어갑니다.
참고로 만든 사촌: htps : // 란치ぇr. 이 m/do cs/란치ぇr/v2. x / 엔 / 구이 ck-s rt-gui에서 /

이번에는 이런 구성으로 만듭니다.





Rancher 서버가 1대.
controlplane 3대
node가 3대

로 만듭니다.
※ 조금 용어가 좋지 않습니다.
master와 controlplane과 control,
node와 worker.
kubernetes의 생각과 이콜인지 여부. . .

먼저 가상 머신을 세웁니다.



가상 머신을 시작합니다.
OS는 CentOS7.5로 만들었습니다.
※공식을 보면 RHEL가 서포트되어 CentOS가 쓰여져 있지 않습니다.
 마, Docker의 버전 있으면 괜찮습니다.

그런 다음 각 서버에 Docker를 설치합니다.


sudo yum update -y 
sudo yum install docker -y 
sudo systemctl enable docker
sudo systemctl start docker


※rancher,kubernetes는 모두 컨테이너에서 실행되기 때문에,
모든 서버에 Docker가 들어간다.

rancher 설치


sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher



rancher에 로그인



https://${만든 서버의 IP}
※PW는 적당하게.



로그인할 때 사이트의 URL을 설정하라는 메시지가 표시되지만,
이 URL은 클러스터 구축시, 각 서버로부터 접속하는 URL로서 이용됩니다.
※이번, 나는, AWS의 EC2로 만들었습니다.
관리 화면에의 액세스는 퍼블릭 IP로 실시해,
rancher - 각 서버 간의 통신은 사설 IP로 이루어집니다.

클러스터 만들기



추가 클러스터를 클릭


사용자 지정을 선택하여 클러스터를 만듭니다.




다음을 클릭하여 다음.

우선 마스터를 3대 만듭니다.
control과 etc에 체크.


명령이 표시되므로 copipe

각 서버에서 명령을 실행합니다.
어쩌면 이런 명령이 되어 있다.
※ 샘플이므로 그대로 실행하지 마십시오.
sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.0.3 --server https://10.0.1.56 --token 8cjzm57csctrsqrmtnch24p6lhk9fbnv5gt94vf6snfvpbv2j2kzg5 --ca-checksum 94f790d48151dacd2d30640466584075fe10a4fdb7c4f686abcff2840ab85c81 --etcd --controlplane

커맨드를 두드리면, 노드가 등록되었다는 취지, 화면에 나온다.
Done을 ​​클릭합니다.



이제 컨트롤 플레인이 설치되어이 이미지의 상태에 있어야합니다.

마스터 완성

노드 추가



클러스터 변경
편집을 클릭


노드를 추가합니다.
worker에만 체크.


명령이 표시되므로 copipe

각 서버에서 명령을 실행합니다.
어쩌면 이런 명령이 되어 있다.
※ 샘플이므로 그대로 실행하지 마십시오.
sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run rancher/rancher-agent:v2.0.3 --server https://10.0.1.56 --token 8cjzm57csctrsqrmtnch24p6lhk9fbnv5gt94vf6snfvpbv2j2kzg5 --ca-checksum 94f790d48151dacd2d30640466584075fe10a4fdb7c4f686abcff2840ab85c81 --worker



이제 작업자가 설치되어이 이미지의 상태에 있어야합니다.
node 완성

여러가지 살펴본다.



node의 등록은 어떻게 되어 있는가.
# Run kubectl commands inside here
# e.g. kubectl get all
>
> kubectl get nodes
NAME            STATUS    ROLES               AGE       VERSION
ip-10-0-1-133   Ready     worker              24m       v1.10.3
ip-10-0-1-193   Ready     controlplane,etcd   35m       v1.10.3
ip-10-0-1-197   Ready     controlplane,etcd   33m       v1.10.3
ip-10-0-1-202   Ready     worker              24m       v1.10.3
ip-10-0-1-227   Ready     controlplane,etcd   33m       v1.10.3
ip-10-0-1-65    Ready     worker              25m       v1.10.3

컨트롤 플레인, 작업자와 관계없이 kubelet이 움직이고 있으며,
클러스터에 노드로 등록되었습니다.
롤로 역할을 나누고 있는 것일까?

어쨌든 nginx 실행
kubectl run nginx --image=nginx:latest --replicas=3
kubectl expose deployment/nginx --type=NodePort --port=80

포트 확인
> kubectl get services
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.43.0.1       <none>        443/TCP        58m
nginx        NodePort    10.43.154.226   <none>        80:31904/TCP   2m

curl을 두드리면 좋은 느낌으로 돌아왔다.

마지막으로



이번, 일부러 GKE나 EKS등의 자동화된 방법을 사용하지 않고 구축했습니다.
이케하고 있을까라고 하면, NO입니다만, 어떤 환경에도 적용할 수 있을 것이라고 실감할 수 있습니다.

Rancher에는 API도 존재하며,
모든 환경에서 가상 머신 구축부터 클러스터 생성까지 완전 자동화할 수 있는,
잠재력을 느낍니다.

좋은 웹페이지 즐겨찾기