쿠버네티스 환경 구축을 위해 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 를 완전 초기화 시킨 뒤 해결되었다.
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 파일에 저장
잘된다!
끝!
'엔지니어링 > Kubernetes' 카테고리의 다른 글
[Kubernetes] cron job 실패 시 중단하기 (2) | 2022.09.01 |
---|---|
[Kubernetes] 외부접근 ingress 적용 (0) | 2022.08.03 |
[AKS] AzureFile을 스토리지 클래스로 사용할 때 권한문제 (0) | 2022.08.02 |
[AKS] POD 볼륨 마운트 (0) | 2022.08.01 |
[AKS] 동적 스토리지 할당하기 (0) | 2022.08.01 |