목차
EC2 인스턴스 구성
Name | master1, master2, master3, worker1 |
OS | Ubuntu 22.04 LTS |
Type | t3a.medium |
Storage | 16gib |
SG | allow all traffic |
etc | default |
user data
#!/bin/bash
apt-get upgrade -y
apt-get dist-upgrade -y
apt-get update -y
apt-get install vim -y
key pair 는 기존에 만들어둔 것을 사용하였음
화면 상 구분하기 쉽게 hostname 을 바꿔줬음
master1 15.165.248.113(EIP) - 172.31.8.2
master2 3.36.122.167 - 172.31.12.129
master3 3.38.149.73 - 172.31.9.206
worker 52.78.25.195 - 172.31.12.140
Master1 node
root 로 접속해서 실행
설치 및 서비스 시작
root@master1:~# swapoff -a
root@master1:~# systemctl stop ufw && ufw disable && iptables -F
hostname 에 특수문자가 포함될 시 RKE2 서버 설치/구동에 문제가 있을 수 있다고 함
설치 및 활성화
curl -sfL https://get.rke2.io | INSTALL_RKE2_TYPE="server" sh -
systemctl enable rke2-server.service
EZPMP RKE1 을 통한 K8S 구축시, Gitlab <> K8S 연동시에 인증서 관련 오류가 발생하였으며
(There was a problem authenticating with your cluster. Please ensure your CA Certificate and Token are valid), 이를 헷지하기 위해서, SAN (Subject Alternative Name)를 추가해서 해결.
이를 위해서 /etc/rancher/rke2/config.yaml 에 tls-san 파라미터를 추가하여, first server node 구축진행
※ SAN 설정
여기서는 SAN 예제 값으로, my-kubernetes-domain.com, another-kubernetes-domain.com 를 추가하는 것으로 진행
mkdir -p /etc/rancher/rke2
vim /etc/rancher/rke2/config.yaml
tls-san:
- my-kubernetes-domain.com
- another-kubernetes-domain.com
rke2-server 시작
systemctl start rke2-server.service
확인
SAN 설정 확인
openssl x509 -in /var/lib/rancher/rke2/server/tls/serving-kube-apiserver.crt -text
SAN 값 추가 확인 (apiserver 인증서에 my-kubernetes-domain.com 과 another-kubernetes-domain.com 확인 가능), 인증서 저장 위치 (/var/lib/rancher/rke2/server/tls)
“Node synced successfully” 메세지 나오면 설치 완료
# systemctl status rke2-server.service
# journalctl -u rke2-server -f
kubeconfig 환경설정
mkdir ~/.kube/
cp /etc/rancher/rke2/rke2.yaml ~/.kube/config
export PATH=$PATH:/var/lib/rancher/rke2/bin/
echo 'export PATH=/usr/local/bin:/var/lib/rancher/rke2/bin:$PATH' >> ~/.bashrc
Server Token 확인
cat /var/lib/rancher/rke2/server/node-token
Node 확인
root@master1:/# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master1 Ready control-plane,etcd,master 20m v1.25.9+rke2r1
Master-2,3 Node
$ swapoff -a (/etc/fstab swap comment out)
$ systemctl stop ufw && ufw disable && iptables -F
$ curl -sfL https://get.rke2.io | INSTALL_RKE2_TYPE="server" sh -
$ systemctl enable rke2-server.service
$ mkdir -p /etc/rancher/rke2/
2nd/3rd 노드에서 config.yaml 파일 생성
# vim /etc/rancher/rke2/config.yaml
server: https://15.165.248.113:9345
token: K106352a960e0371e7cc1025d4742651bd9a7ea2c79d93754f8bc191fb7cbc13e7f::server:7f203956cfe34e9ef2a46cdd5e2b6dd0
tls-san:
- my-kubernetes-domain.com
- another-kubernetes-domain.com
rke2-server 프로세스 구동 후, node 추가 확인 (5-10분소요)
# systemctl start rke2-server.service
# journalctl -u rke2-server -f
하나씩 Ready 뜨는거 확인하고 추가했음
Worker Node
설치 및 서비스 시작
# curl -sfL https://get.rke2.io | INSTALL_RKE2_TYPE="agent" sh -
# mkdir -p /etc/rancher/rke2/
# vi /etc/rancher/rke2/config.yaml
server: https://<server>:9345
token: ( Server Token )
# node-name : (선택사항)
확인
systemctl enable rke2-agent.service
systemctl start rke2-agent.service
journalctl -u rke2-agent -f
kubeconfig 설정
export PATH=$PATH:/var/lib/rancher/rke2/bin/
mkdir ~/.kube
mv /var/lib/rancher/rke2/agent/kubelet.kubeconfig ~/.kube/config
Rancher
Cert-Manager 설치
kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.9.2/cert-manager.yaml
kubectl -n cert-manager rollout status deploy/cert-manager
kubectl -n cert-manager rollout status deploy/cert-manager-webhook
kubectl get pods --namespace cert-manager
HELM 설치
$ curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
$ chmod 700 get_helm.sh
$ ./get_helm.sh
Rancher UI 배포 (cattle-system)
kubectl create namespace cattle-system
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
helm repo update
helm search repo rancher-stable
helm install rancher rancher-stable/rancher --namespace cattle-system --set hostname=15.165.248.113.nip.io --set global.cattle.psp.enabled=false
(추가) helm install 명령 실행 시 “Error: INSTALLATION FAILED: execution error at (rancher/templates/validate-psp-install.yaml:4:5): The target cluster does not have the PodSecurityPolicy API resource. Please disable PSPs in this chart before proceeding.” 오류가 발생하여 뒤에 --set global.cattle.psp.enabled=false 을 추가해줬음
Rancher 접속
15.165.248.113.nip.io 로 접속
'Kubernetes > Rancher' 카테고리의 다른 글
Minikube Cluster with Rancher UI (0) | 2023.05.02 |
---|---|
[k8s-Rancher] 3. VMware 로 RKE2 k8s 클러스터 구축 (미완) (0) | 2023.05.02 |
[k8s-Rancher] 2. Rancher desktop (0) | 2023.04.23 |
[Rancher] 1. Rancher 이해 (0) | 2023.04.18 |
Rancher 시작하기 (1) | 2023.04.17 |