반응형

쿠버네티스 환경 구축을 위해 rancher 를 사용해 보았다.

앞 포스팅에서 생성했던 azure gallery 이미지를 활용하여 Azure에 rancher용 1대, kube용 3대를 생성할 것이다.

VM 정보

용도 VM이름 base Image 정보 username password ZONE
RANCHER rancher ubuntu Server 20.04 LTS - Gen2 rancher ************* 1
VM1 kube-vm1 ubuntu Server 20.04 LTS - Gen2 master ************* 1
VM2 kube-vm2 ubuntu Server 20.04 LTS - Gen2 master ************* 2
VM3 kube-vm3 ubuntu Server 20.04 LTS - Gen2 master ************* 3

Rancher 설치 및 배포

컨테이너 기동

이미 docker 가 설치되어 있기 떄문에 rancher 이미지를 바로 기동시키면 된다

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

 

애저 외부 접근 허용하기

생성한 rancher vm > networking 에서 Add Inbound port Rule 클릭

443만 열어도 되는데, 80으로 접근하면 443으로 redirect 시키기 때문에 2개다 허용하였다

 

초기 패스워드 확인

docker logs <컨테이너이름>  2>&1 | grep "Bootstrap Password:"

 

로그인 후 초기 설정

Server URL Private IP 를 기입하여 kube node 들이 연결할 수 있도록 한다.

 

 

쿠버네티스 클러스터 생성

사전 설정(PORT)

애저 네트워크에서 k8s 에서 사용할 port를 열어준다.

https://rancher.com/docs/rancher/v2.x/en/installation/references/

위 site에서 port를 체크하고 inbound 포트를 허용시켜야 한다.

 

클러스터 생성

랜처 대시보드에서 클러스터를 생성

이제 파란글자를 copy해서 docker 가 설치되어 있는 다른 VM에서 실행만 시켜주면 끝이다.

docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run  rancher/rancher-agent:v2.6.6 --server https://10.2.0.7 --token g4ns8pj7fzwzxp9j2fqllp4k9sknqc2728685k8jggb7rkpfgjg2vx --ca-checksum dff1b0792b25143f4e70e8ee88fffa85e3f85cf42195aa5e9b549a44a5f8087d --etcd --controlplane --worker

클러스터 배포는 Provisoning > Waiting > Active 단계로 진행되며 약 10분 이상이 소요됨.

 

 

issue. 인증서 문제

failed to verify client's certificate: x509: certificate signed by unknown authority

위 에러가 나서 검색하던 중 아래 사이트를 참고하여 모두 docker 를 완전 초기화 시킨 뒤 해결되었다.

 

Ha deployment failed · Issue #21926 · rancher/rancher

use rke up --config rancher-cluster.yml etcd logs:2019-08-01 11:17:54.301389 I | embed: rejected connection from "192.168.3.2:60362" (error "tls: failed to verify client's certif...

github.com

docker stop $(docker ps -aq)
docker system prune -f
docker volume rm $(docker volume ls -q)
docker image rm $(docker image ls -q)
rm -rf /etc/ceph \
       /etc/cni \
       /etc/kubernetes \
       /opt/cni \
       /opt/rke \
       /run/secrets/kubernetes.io \
       /run/calico \
       /run/flannel \
       /var/lib/calico \
       /var/lib/etcd \
       /var/lib/cni \
       /var/lib/kubelet \
       /var/lib/rancher/rke/log \
       /var/log/containers \
       /var/log/pods \
       /var/run/calico

 

배포 완료

약간의 기다림 끝에 Active 상태가 되었다.

 

대시보드 확인

 

너무도 쉽게 kubernetes가 배포되었다.

 

rancher cli 에서 kubectl 테스트

 

kubectl 설치

원할한 쿠버네티스 사용을 위해 kubectl 를 설치하고 연결해보자

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
echo "$(<kubectl.sha256) kubectl" | sha256sum --check
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl

 

kubeconfig 접속설정 다운

랜처 대시보드 상단 메뉴에서 Download KubeConfig 버튼을 클릭

다운 받은 파일을 ~/.kube/config 파일에 저장

 

잘된다!

 

끝!

반응형
복사했습니다!