2. 설치 가이드
Playce Kube
- 1 Playce Kube
- 1.1 소개
- 1.2 아키텍처
- 1.3 설치
- 1.3.1 1. Playce Kube 설치 프로그램 개요
- 1.3.2 2. Playce Kube 설치 프로세스
- 1.3.3 3. Playce Kube 설치
- 1.3.3.1 3.1 사전 요구 사항
- 1.3.3.2 3.2 설치 준비
- 1.3.3.3 3.3 설치 패키지 다운로드
- 1.3.3.4 3.4 deploy 서버 설치
- 1.3.3.5 3.5 클러스터 설치 사전 준비 사항
- 1.3.3.6 3.6 클러스터 설치 및 구성
- 1.3.3.7 3.7 애드온 설치
- 1.3.3.7.1 helm chart 레포지토리 확인 및 설치된 리스트 확인
- 1.3.3.7.2 addons 설치 방법
- 1.4 문제 해결(FAQ)
소개
이 문서는 Playce Kube Platform 설치 및 구성 프로세스에 대해 이해를 돕고자 작성된 문서입니다.
아키텍처
설치
1. Playce Kube 설치 프로그램 개요
Playce Kube 설치 프로그램은 일련의 대상 및 종속 항목을 사용하여 클러스터를 설치 및 구성 관리 합니다.
설치 프로그램에는 달성해야 할 대상 세트가 있으며, 각 대상에는 종속 항목 세트가 있습니다.
각 대상은 고유한 종속 항목에만 관련되므로 여러 대상이 병렬로 수행되도록 설치 프로그램이 작동 할 수 있습니다.
설치 프로그램에서 생성된 주요 요소는 Deploy, Master, Worker 노드의 구성 파일 입니다.
이 세가지 구성과 올바르게 구성된 인프라를 사용하면 Playce Kube Platform 클러스터를 시작 할 수 있습니다.
Playce Kube 2.0 에서는 다음 플랫폼에서 클러스터를 설치 할 수 있습니다.
Playce Kube 클러스터에서 지원되는 플랫폼
Openstack
AWS
GCP
Azure
Baremetal
2. Playce Kube 설치 프로세스
Playce Kube 설치 시 Playce Kube 사이트에서 설치 프로그램을 다운로드 합니다. 설치 프로그램에는 Deploy 및 Kubernetes 구성 요소가 모두 들어가 있습니다
다음 다이어그램에는 설치 프로세스의 흐름을 보여줍니다.
3. Playce Kube 설치
3.1 사전 요구 사항
아래는 Playce Kube 가 지원하는 권장 사양 내용 입니다. 설치/사용 전 반드시 확인이 필요합니다.
자세한 요구 사항은 아래 에서 확인 할 수 있습니다.
방화벽 정보
방화벽 포트는 사전에 허용되어 있어야 합니다.
deploy
프로토콜 | 방향 | 포트 범위 | 용도 | 사용 주체 |
---|---|---|---|---|
TCP | 인바운드 | 8443 | 대시보드 HTTPS (현재 rancher) | Web Client |
TCP | 인바운드 | 9443 | Deploy Keycloak | 대시보드 |
TCP | 인바운드 | 5000 | Docker Registry (HTTPS) | 모든 Kubernetes 클러스터 노드 |
TCP | 인바운드 | 80 | Repository HTTP
| 모든 Kubernetes 클러스터 노드 |
TCP | 인바운드 | 443 | Repository HTTPS
| 모든 Kubernetes 클러스터 노드 |
UDP | 인바운드 | 123 | Network Time Protocol (chrony) | 모든 Kubernetes 클러스터 노드 |
TCP/UDP | 인바운드 | 53 | Domain Name System (bind9) | 모든 Kubernetes 클러스터 노드 |
TCP | 인바운드 | 2049 | Network File System | 모든 Kubernetes 클러스터 노드 |
Kubernetes master
프로토콜 | 방향 | 포트 범위 | 용도 | 사용 주체 |
---|---|---|---|---|
TCP | 인바운드 | 6443 | 쿠버네티스 API 서버 | Kubernetes 마스터 노드 |
TCP | 인바운드 | 2379-2380 | etcd 서버 클라이언트 API | Kubernetes 마스터 노드. kube-apiserver, etcd |
TCP | 인바운드 | 10250 | Kubelet API | 모든 Kubernetes 클러스터 노드. Self |
TCP | 인바운드 | 10259 | kube-scheduler | Kubernetes 마스터 노드. Self |
TCP | 인바운드 | 10257 | kube-controller-manager | Kubernetes 마스터 노드. Self |
TCP | 인바운드 | 30000-32767 | NodePort 서비스 | 모든 Kubernetes 클러스터 노드 |
TCP/UDP | 인바운드 | 53 | Domain Name System (coredns) | 모든 Kubernetes 클러스터 노드 |
TCP | 인바운드 | 179 | Calico networking (BGP) | 모든 Kubernetes 클러스터 노드 |
Kubernetes worker
프로토콜 | 방향 | 포트 범위 | 용도 | 사용 주체 |
---|---|---|---|---|
TCP | 인바운드 | 10250 | Kubelet API | 모든 Kubernetes 클러스터 노드. Self |
TCP | 인바운드 | 30000-32767 | NodePort 서비스 | 모든 Kubernetes 클러스터 노드 |
TCP/UDP | 인바운드 | 53 | Domain Name System (coredns) | 모든 Kubernetes 클러스터 노드 |
TCP | 인바운드 | 179 | Calico networking (BGP) | 모든 Kubernetes 클러스터 노드 |
Kubernetes ingress 추가 포트
프로토콜 | 방향 | 포트 범위 | 용도 | 사용 주체 |
---|---|---|---|---|
TCP | 인바운드 | 80 | Ingress HTTP 포트 | Web Client |
TCP | 인바운드 | 443 | Ingress HTTPS 포트 | Web Client |
최소/권장 사양
PlayceKube 구성을 위해 최소/권장 사양은 아래와 같습니다.
항목 | 최소 사양 | 권장 사양 |
---|---|---|
CPU | 8 Core | 8 Core |
Memory | 16 GB | 16 GB |
HDD | 200 GB 500 GB (deploy) | 200 GB 800 GB (deploy) |
지원되는 운영 체제
PlayceKube는 다음 호스트 운영 체제(OS)를 지원합니다.
CentOS 7
Rocky Linux 8
Ubuntu focal(20.xx)
Ubuntu jammy(22.xx)
네트워크
Playce Kube 에서는 다음의 주요 네트워크에 액세스 해야 합니다.
deploy 서버에는 최소 두 개의 1Gbps 네트워크 인터페이스 카드가 필요합니다. 하나는 프로비저닝 또는 컨트롤 플레인 네트워크 용 이고, 다른 하나는 외부 네트워크 용입니다. 다수의 노드를 프로비저닝 하는 경우에는 프로비저닝 네트워크 트래픽에 대비해 10Gbps 인터페이스를 사용하는 것이 좋습니다.
프로비저닝 또는 컨트롤 플레인 네트워크
deploy에서 노드에 프로비저닝 하고, Ansible 구성을 실행할 때 SSH를 통해 해당 노드에 액세스하는 데 사용하는 네트워크 입니다. 이 네트워크에서는 deploy 서버에서 master,worker 노드로의 SSH 액세스도 가능합니다.
외부 네트워크
Playce Kube Platform 레포지토리, 컨테이너 이미지 소스, DNS 서버 또는 NTP 서버와 같은 기타 서버에 액세스 할 수 있습니다. 워크스테이션 에서 정상적으로 deploy에 액세스 할 때 이 네트워크를 사용합니다.
네트워크를 계획할 때 다음 지침을 검토하십시오.
프로비저닝 네트워크에는 현재 환경 크기에 맞는 IP범위가 필요합니다.
3.2 설치 준비
Playce Kube 설치를 위해선 패키지 및 데이터 파일 다운로드 외 별도의 사전 작업이 필요치 않습니다
3.3 설치 패키지 다운로드
Playce Kube 를 설치하기 전에 사전에 패키지 파일을 다운로드 받아야 합니다.
파일 정보
파일명 | 파일 사이즈 | 다운로드 시간 | ||
Byte | Giga Byte | 12.5 MB/s | 62.5 MB/s | |
PlayceCloud.Kube.v2.0.0.tar | 20438016 | 0.02 | 0h 0m 1.5s | 0h 0m 0.3s |
PlayceCloudData.DeployBase.v2.0.0.tar.gz | 904217927 | 0.84 | 0h 1m 8.9s | 0h 0m 13.7s |
PlayceCloudData.K8SRepo.v2.0.0.tar | 2911168512 | 2.71 | 0h 3m 42.1s | 0h 0m 44.4s |
PlayceCloudData.K8SRegistry.v2.0.0.tar | 20104178688 | 18.72 | 0h 25m 33.8s | 0h 5m 6.7s |
PlayceCloudData.OSRepo.centos7.v2.0.0.tar | 34864709632 | 32.47 | 0h 44m 19.9s | 0h 8m 51.9s |
PlayceCloudData.OSRepo.rocky8.v2.0.0.tar | 15175487488 | 14.13 | 0h 19m 17.7s | 0h 3m 51.5s |
PlayceCloudData.OSRepo.focal.v2.0.0.tar | 301558744064 | 280.85 | 6h 23m 27.1s | 1h 16m 41.4s |
PlayceCloudData.OSRepo.jammy.v2.0.0.tar | 206721367040 | 192.52 | 4h 22m 51.5s | 0h 52m 34.3s |
설치 파일 정보
데이터 파일 정보
http://repo.playcecloud.io/PlayceCloudData.DeployBase.v2.0.0.tar.gz
http://repo.playcecloud.io/PlayceCloudData.K8SRepo.v2.0.0.tar
http://repo.playcecloud.io/PlayceCloudData.K8SRegistry.v2.0.0.tar
http://repo.playcecloud.io/PlayceCloudData.OSRepo.centos7.v2.0.0.tar
http://repo.playcecloud.io/PlayceCloudData.OSRepo.rocky8.v2.0.0.tar
http://repo.playcecloud.io/PlayceCloudData.OSRepo.focal.v2.0.0.tar
http://repo.playcecloud.io/PlayceCloudData.OSRepo.jammy.v2.0.0.tar
git과 Web Client로 다운로드 가능합니다. OS Repo 는 사용하는 OS 만 다운로드 받으면 됩니다
아래 상세 절차는 Ubuntu jammy OS 로 다운로드 받을 때의 샘플 절차입니다.
패키지 다운로드 상세 절차
Playce Cloud 소스 파일 디렉터리를 생성 합니다.
mkdir -p /playcecloud/srcdata
설치 파일 및 체크섬 다운로드 합니다.
설치 파일 다운로드
curl -L http://repo.playcecloud.io/PlayceCloud.Kube.v2.0.0.tar -o /playcecloud/srcdata/PlayceCloud.Kube.v2.0.0.tar
체크섬 파일 다운로드
curl -I http://repo.playcecloud.io/PlayceCloud.Kube.v2.0.0.tar | grep "meta-md5" | awk '{ print $2 }' | tr -d '\r' > /playcecloud/srcdata/PlayceCloud.Kube.v2.0.0.tar.MD5SUMS
데이터 파일 및 체크섬 다운로드
데이터 파일 다운로드
curl -L http://repo.playcecloud.io/PlayceCloudData.DeployBase.v2.0.0.tar -o /playcecloud/srcdata/PlayceCloudData.DeployBase.v2.0.0.tar curl -L http://repo.playcecloud.io/PlayceCloudData.K8SRegistry.v2.0.0.tar -o /playcecloud/srcdata/PlayceCloudData.K8SRegistry.v2.0.0.tar curl -L http://repo.playcecloud.io/PlayceCloudData.K8SRepo.v2.0.0.tar -o /playcecloud/srcdata/PlayceCloudData.K8SRepo.v2.0.0.tar curl -L http://repo.playcecloud.io/PlayceCloudData.OSRepo.jammy.v2.0.0.tar -o /playcecloud/srcdata/PlayceCloudData.OSRepo.jammy.v2.0.0.tar
체크섬 파일 다운로드
curl -I http://repo.playcecloud.io/PlayceCloudData.DeployBase.v2.0.0.tar | grep "meta-md5" | awk '{ print $2 }' | tr -d '\r' > /playcecloud/srcdata/PlayceCloudData.DeployBase.v2.0.0.tar.MD5SUMS curl -I http://repo.playcecloud.io/PlayceCloudData.K8SRegistry.v2.0.0.tar | grep "meta-md5" | awk '{ print $2 }' | tr -d '\r' > /playcecloud/srcdata/PlayceCloudData.K8SRegistry.v2.0.0.tar.MD5SUMS curl -I http://repo.playcecloud.io/PlayceCloudData.K8SRepo.v2.0.0.tar | grep "meta-md5" | awk '{ print $2 }' | tr -d '\r' > /playcecloud/srcdata/PlayceCloudData.K8SRepo.v2.0.0.tar.MD5SUMS curl -I http://repo.playcecloud.io/PlayceCloudData.OSRepo.jammy.v2.0.0.tar | grep "meta-md5" | awk '{ print $2 }' | tr -d '\r' > /playcecloud/srcdata/PlayceCloudData.OSRepo.jammy.v2.0.0.tar.MD5SUMS
다운로드 확인 및 체크섬 확인
다운로드 확인
# ls -l total 568613720 -rw-r--r-- 1 root root 20438016 Jan 27 21:57 PlayceCloud.Kube.v2.0.0.tar -rw-r--r-- 1 root root 62 Jan 27 21:57 PlayceCloud.Kube.v2.0.0.tar.MD5SUMS -rw------- 1 root root 904217927 Jan 27 22:02 PlayceCloudData.DeployBase.v2.0.0.tar.gz -rw-r--r-- 1 root root 96 Jan 27 22:20 PlayceCloudData.DeployBase.v2.0.0.tar.gz.MD5SUMS -rw-r--r-- 1 root root 20104178688 Jan 27 22:29 PlayceCloudData.K8SRegistry.v2.0.0.tar -rw-r--r-- 1 root root 73 Jan 27 22:33 PlayceCloudData.K8SRegistry.v2.0.0.tar.MD5SUMS -rw-r--r-- 1 root root 2911168512 Jan 27 21:57 PlayceCloudData.K8SRepo.v2.0.0.tar -rw-r--r-- 1 root root 69 Jan 27 21:57 PlayceCloudData.K8SRepo.v2.0.0.tar.MD5SUMS -rw-r--r-- 1 root root 206721367040 Jan 27 19:53 PlayceCloudData.OSRepo.jammy.v2.0.0.tar -rw-r--r-- 1 root root 74 Jan 27 20:26 PlayceCloudData.OSRepo.jammy.v2.0.0.tar.MD5SUMS
체크섬 확인
# echo $(cat PlayceCloud.Kube.v2.0.0.tar.MD5SUMS) *PlayceCloud.Kube.v2.0.0.tar | md5sum --check PlayceCloud.Kube.v2.0.0.tar: OK # echo $(cat PlayceCloudData.DeployBase.v2.0.0.tar.MD5SUMS) *PlayceCloudData.DeployBase.v2.0.0.tar | md5sum --check PlayceCloudData.DeployBase.v2.0.0.tar: OK # echo $(cat PlayceCloudData.K8SRegistry.v2.0.0.tar.MD5SUMS) *PlayceCloudData.K8SRegistry.v2.0.0.tar | md5sum --check PlayceCloudData.K8SRegistry.v2.0.0.tar: OK # echo $(cat PlayceCloudData.K8SRepo.v2.0.0.tar.MD5SUMS) *PlayceCloudData.K8SRepo.v2.0.0.tar | md5sum --check PlayceCloudData.K8SRepo.v2.0.0.tar: OK # echo $(cat PlayceCloudData.OSRepo.jammy.v2.0.0.tar.MD5SUMS) *PlayceCloudData.OSRepo.jammy.v2.0.0.tar | md5sum --check PlayceCloudData.OSRepo.jammy.v2.0.0.tar: OK
3.4 deploy 서버 설치
root 사용자로 deploy 서버에 로그인 합니다.
deploy 서버에서 사전에 생성한 Playce Kube 패키지 파일이 있는 디렉터리 경로로 이동 합니다.
cd /playcecloud/srcdata/
설치 파일 압축 해제 및 확인
압축 해제
tar xpf /playcecloud/srcdata/PlayceCloud.Kube.v2.0.0.tar -C /playcecloud/
설치 버전 확인
# cat /playcecloud/playcekube/release.txt name: Playce Kube version: v2.0.0 release-date: 2023-01-29
PlayceKube 설치 전 설정 파일 구성
playcecloud.conf 복사
cp /playcecloud/playcekube/playcecloud.conf.example /playcecloud/playcecloud.conf
playcecloud.conf 파일 수정
환경에 맞게 설정 값을 변경 해야 합니다. 아래 <표 3.4.5 playcecloud.conf> 참조# PlayceCloud config env 파일 샘플 파일 설명입니다. ############################## # Playce 옵션 ############################## # 설치될 디렉터리 경로 PLAYCE_DIR=/playcecloud # 설정파일이 있는 경로 PLAYCE_CONFDIR=${PLAYCE_DIR}/conf # 데이터파일이 있는 경로 PLAYCE_DATADIR=${PLAYCE_DIR}/data # 도메인 이름 설정 PLAYCE_DOMAIN=playce.cloud # Deploy IP # PLAYCE_DEPLOY=$(ip -4 -o a | grep -Ev "\slo\s" | head -n 1 | awk '{ print $4 }' | sed 's/\(.*\)\/.*/\1/') PLAYCE_DEPLOY= 127.0.0.1 UPSTREAM_DNS=8.8.8.8 PLAYCEOPENSTACK_VERSION=v1.0 PLAYCEKUBE_VERSION=v2.0 RANCHER_SECRET=
deploy 서버 설치
/playcecloud/playcekube/bin/install_playcekube
deploy 서버 설치 확인
설치 요소를 확인합니다. Playce Kube 서비스들은 docker 서비스로 동작합니다. (ntp 제외)# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 0ba87ab96aeb rancher/rancher:v2.6.6 "entrypoint.sh" 3 minutes ago Up About a minute 0.0.0.0:8080->80/tcp, :::8080->80/tcp, 0.0.0.0:8443->443/tcp, :::8443->443/tcp playcekube_rancher b1cf173b02f2 quay.io/keycloak/keycloak:18.0.2 "/opt/keycloak/bin/k…" 3 minutes ago Up 3 minutes 8080/tcp, 8443/tcp, 0.0.0.0:9443->9443/tcp, :::9443->9443/tcp playcecloud_keycloak e53628899cb3 itsthenetwork/nfs-server-alpine:12 "/usr/bin/nfsd.sh" 3 minutes ago Up 3 minutes 0.0.0.0:2049->2049/tcp, :::2049->2049/tcp playcecloud_nfs 7004a1f0b8ad nginx:1.20.2 "/docker-entrypoint.…" 3 minutes ago Up 3 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp playcecloud_repository f1a486b46d61 ubuntu/bind9:9.16-21.10_edge "docker-entrypoint.sh" 3 minutes ago Up 3 minutes 0.0.0.0:53->53/tcp, 0.0.0.0:53->53/udp, :::53->53/tcp, :::53->53/udp, 953/tcp playcecloud_bind9 86a0c2d9f060 registry:2.7.1 "/entrypoint.sh /etc…" 3 minutes ago Up 3 minutes 0.0.0.0:5000->5000/tcp, :::5000->5000/tcp playcecloud_registry
playcekube_rancher : Playce Kube 의 Kubernetes 클러스터를 관리하는 대시보드입니다
playcelcoud_keycloak : Playce Kube 의 인증을 담당하는 시스템입니다. playcekube_rancher 용
playcecloud_nfs : Playce Kube 에서 Persistent Volume 을 사용할 수 있도록 기본적으로 제공하는 NFS 서버입니다
playcecloud_repository : Playce Kube 에서 사용하는 각종 레포지토리 서버입니다. (os repo, kuberentes binaries, helm chart, jenkins plugins)
playcecloud_bind9 : Playce Kube 에서 사용하는 DNS 서버입니다. 클러스터 설치 시 해당 정보가 자동으로 설정됩니다
playcecloud_registry : Playce Kube 에서 사용하는 컨테이너 이미지 레포
지토리 서버입니다
<표 3.4.5 playcecloud.conf>
환경 변수 | 설명 |
---|---|
PLAYCE_DIR | Playce Cloud 제품 설치 위치. 기본 /playcecloud 권장 |
PLAYCE_CONFDIR | Playce Cloud 제품의 config 디렉터리 위치 PLAYCE_DIR 상대 경로 자동 설정 |
PLAYCE_DATADIR | Playce Cloud 제품의 data 디렉터리 위치 |
PLAYCE_DOMAIN | Playce Cloud 제품에서 사용할 기본 도메인 주소 |
PLAYCE_DEPLOY | deploy 서버의 IP로 클러스터와 통신하게 될 IP주소 |
UPSTREAM_DNS | PLAYCE_DOMAIN 도메인 외의 도메인을 처리할 네임 서버 주소 |
PLAYCEOPENSTACK_VERSION | Playce Openstack 제품 버전. 수정 하지 않음 |
PLAYCEKUBE_VERSION | Playce Kube 제품 버전. 수정 하지 않음 |
RANCHER_SECRET | Rancher 에서 사용하는 API secret. 자동으로 설정 되므로 수정 하지 않음 |
<표 3.4.5 playcecloud.conf>
3.5 클러스터 설치 사전 준비 사항
기본적으로는 클러스터가 설치될 서버만 있으면 되지만 SSH 접속을 하기 위한 사전 준비가 필요할 수 있습니다
확인 사항
SSH 접속 계정이 root 인지 여부
SSH 접속 시 패스워드 인증을 사용하는지 여부
준비 사항
SSH 접속 시 root 가 아닐 경우
playcekube_kubespray.env
파일 설정에서 ANSIBLE_USER 값을 해당 계정으로 입력 하며 sudo 권한으로 root 권한 획득이 가능해야 한다.root 권한 획득 시 패스워드 입력이 필요한 경우
playcekube_kubespray.env
파일 설정에서 BECOME_PASSWD 값을 입력
SSH 접속 시 패스워드 인증을 사용할 경우
playcekube_kubespray.env
파일 설정에서 ANSIBLE_PASSWD 값을 입력
SSH 접속 시 인증키를 통한 접속일 경우
playcekube_kubespray.env
파일에서 ANSIBLE_PASSWD 값은 주석 처리기존 인증키가 있을 경우 해당 인증키를 아래의 경로 및 파일 명 으로 변경하여 사용
개인 키 : /playcecloud/playcekube/kubespray/kubespray_ssh
공개 키 : /playcecloud/playcekube/kubespray/kubespray_ssh.pub
3.6 클러스터 설치 및 구성
Playce Kube 클러스터는 .env
파일을 기본으로 환경 구성을 합니다. playcekube/bin/playcekube_kubespray.sh
를 실행하여 배포 합니다.
절차
.env
확장자의 환경 설정 파일 생성 안내
권장 생성 위치는 /playcecloud/data/kubespray/envfiles/ 이며 /playcecloud/playcekube/kubespray/kubespray-sample.env 에 샘플 파일이 있습니다# playcekube_kubespray # env file #MODE [DEPLOY, UPGRADE, RESET, SCALE, REMOVE-NODE, JUST-INVENTORY] MODE=DEPLOY # inventory config CREATE_INVENTORY=true FORCE_CREATE_INVENTORY=true ANSIBLE_USER=root ANSIBLE_PASSWD=vmffpdltm #BECOME_USER=rocky #BECOME_PASSWD= # cluster config CLUSTER_NAME=k8s #CLUSTER_RUNTIME=containerd #SERVICE_NETWORK=10.233.0.0/18 #POD_NETWORK=10.233.64.0/18 #KUBERNETES_VERSION=v1.22.5 # network config #NETWORK_MODE [public,private] NETWORK_MODE=private PRIVATE_DNS=172.30.1.10 PRIVATE_REPO=repository.local.cloud PRIVATE_REGISTRY=registry.local.cloud:5000 PRIVATE_NTP=172.30.1.10 #PROXY_SERVER=172.30.1.10:3128 # vip config #MASTER_VIP=192.168.10.101 #MASTER_SANS=master.test.com,master-api.local.cloud #INGRESS_VIP=192.168.10.102 # hosts config MASTERS=playcekube-master01:172.30.1.21 WORKERS=playcekube-worker01:172.30.1.31,playcekube-worker02:172.30.1.32 INGRESSES=playcekube-worker01,playcekube-worker02 #LOGGING= #INFRA= #CICD= #LIMIT_NODES=
각각의 설정에서 하위 매개변수 세트를 통해 사용 방법을 정의할 수 있습니다. 다음 표에는 하위 매개변수에 대한 정보가 나와 있습니다
매개변수 | 설명 |
---|---|
MODE | DEPLOY, UPGRADE, RESET=클러스터삭제, SCALE=노드추가, REMOVE-NODE=노드삭제, JUST-INVENTORY=인벤토리만생성 |
CREATE_INVENTORY | 인벤토리 파일을 생성할지 여부 |
FORCE_CREATE_INVENTORY | 강제로 인벤토리 디렉터리를 생성할지 여부 |
ANSIBLE_USER | 클러스터 노드 접속 계정 |
ANSIBLE_PASSWD | 클러스터 노드 접속 패스워드 (ssh key가 이미 복사되어 있으면 생략가능) |
BECOME_USER | root (관리자 권한이 필요합니다). ANSIBLE_USER 가 root 일 경우 불필요 |
BECOME_PASSWD | ANSIBLE_USER 가 sudo 로 root가 되기 위한 패스워드. ANSIBLE_USER 가 root 일 경우 불필요 |
CLUSTER_NAME | 클러스터 이름 |
CLUSTER_RUNTIME | 클러스터 런타임 종류 |
SERVICE_NETWORK | 서비스 네트워크 |
POD_NETWORK | 파드 네트워크 |
PRIVATE_DNS | DNS 서버 주소. 일반적으로 deploy 서버 IP |
PRIVATE_REPO | 사설 레포지토리 서버 주소. 일반적으로 repository.local.cloud |
PRIVATE_REGISTRY | 사설 컨테이너 이미지 서버 주소. 일반적으로 registry.local.cloud:5000 |
PRIVATE_NTP | NTP 서버 주소. 일반적으로 deploy 서버 IP |
MASTER_VIP | 클러스터 Kubernetes API 인증서의 SAN 정보에 추가 된다 |
MASTER_SANS | 클러스터 Kubernetes API 인증서의 SAN 정보에 추가 된다 |
INGRESS_VIP | 클러스터 인그레스 인증서의 SAN 정보에 추가 된다 |
MASTERS | 마스터 노드의 호스트 정보. <host name>:<host ip> 구분자는 , |
WORKERS | 워커 노드의 호스트 정보. <host name>:<host ip> 구분자는 , |
INGRESSES | 인그레스 노드의 호스트 네임. 노드에 Label 추가. 구분자는 , |
LOGGING | 로깅 노드의 호스트 네임. 노드에 Label 추가. 구분자는 , |
INFRA | 인프라 노드의 호스트 네임. 노드에 Label 추가. 구분자는 , |
CICD | CI/CD 노드의 호스트 네임. 노드에 Label 추가. 구분자는 , |
LIMIT_NODES | SCALE,REMOVE-NODE 시 추가/삭제 되는 호스트 네임. 구분자는 , |
중요
NTP 및 DNS 는 deploy 서버의 IP를 적용해야 원활한 사용이 가능합니다
.env
설정 파일 생성cp -rp /playcecloud/playcekube/kubespray/kubespray-sample.env /playcecloud/data/kubespray/envfiles/playcekube_kubespray.env
클러스터 설치
/playcecloud/playcekube/bin/playcekube_kubespray.sh -f /playcecloud/data/kubespray/envfiles/playcekube_kubespray.env
클러스터 설치 확인
클러스터가 설치 되고 metrics-server, ingress, csi-nfs driver, storage class가 생성되며 rancher에 자동으로 등록 됩니다
rancher 에서 Kubernetes 클러스터를 관리하거나 deploy 서버에 kubernetes context가 자동 생성되어 kubectl 명령으로도 클러스터를 관리 할 수 있습니다
3.7 애드온 설치
지원 애드온 리스트
metrics-server : kubectl top 커맨드 및 HPA 사용시에 사용 되는 메트릭 수집서버 (기본 설치)
ingress-nginx : nginx 로 구성되어 있는 ingress 서버 (기본 설치)
csi-driver-nfs : nfs 용 csi 드라이버 (기본 설치)
keycloak : 쿠버네티스 OpenId 연결용 인증 서버
oauth2-proxy : 인증 제공자와 어플리케이션을 연결시켜주는 프록시 서버
gatekeeper : 쿠버네티스 환경에서 정책 제어를 할 수 있도록 특화된 솔루션. OPA 엔진 사용
prometheus (kube-prometheus-stack) : 모니터링 데이터 저장/검색 시스템
velero : 백업 솔루션
minio : Object Storage 서버. velero 에서 백업 복원시 사용하는 저장소
opendistro-es (elasticsearch) : 로그 데이터 저장/검색 시스템
gitea : git 형상 관리 서버
gitlab : git 형상 관리 및 CI/CD 지원 서버 (옵션 제공)
harbor : 이미지/Helm chart 저장소, 이미지 취약점 검색 기능 제공
tekton : tekton-pipeline CI 지원 도구
jenkins : CI/CD 지원 도구 (옵션 제공)
argo-cd : CD 도구
argo-rollouts : 배포 전략 확장용 argo-cd 지원 도구
argo-events : 이벤트 기반 워크플로 자동화 프레임워크. argo-cd 지원 도구
helm chart 레포지토리 확인 및 설치된 리스트 확인
Playce Kube 에서는 사용할 수 있는 Helm chart 및 관련 이미지 레지스트리를 기본 제공 함으로써 쉽게 설치할 수 있도록 지원 합니다
helm chart 레포지토리를 확인합니다
helm search repo
결과 예제
NAME CHART VERSION APP VERSION DESCRIPTION playcekube/argo-cd 5.16.2 v2.5.4 A Helm chart for Argo CD, a declarative, GitOps... playcekube/argo-events 2.0.3 v1.7.1 A Helm chart for Argo Events, the event-driven ... playcekube/argo-rollouts 2.18.0 v1.2.0 A Helm chart for Argo Rollouts playcekube/csi-driver-nfs v4.0.0 v4.0.0 CSI NFS Driver for Kubernetes playcekube/curl 0.1.0 7.80.0 A Helm chart for curlimages playcekube/gatekeeper 3.11.0 v3.11.0 A Helm chart for Gatekeeper playcekube/gitea 5.0.9 1.16.8 Gitea Helm chart for Kubernetes playcekube/gitlab 6.1.1 15.1.1 The One DevOps Platform playcekube/harbor 14.0.3 2.5.2 Harbor is an open source trusted cloud-native r... playcekube/ingress-nginx 4.1.4 1.2.1 Ingress controller for Kubernetes using NGINX a... playcekube/jenkins 4.1.12 2.346.1 Jenkins - Build great things at any scale! The ... playcekube/keepalived 0.1.0 2.2.4 A Helm chart for keepalived playcekube/keycloak 9.2.2 18.0.0 Keycloak is a high performance Java-based ident... playcekube/knative v1.6.0 v1.6.0 A Helm chart for knative playcekube/kube-prometheus-stack 35.3.1 0.56.2 kube-prometheus-stack collects Kubernetes manif... playcekube/kubeapps 9.0.3 2.4.6 Kubeapps is a web-based UI for launching and ma... playcekube/kubernetes-dashboard 5.4.1 2.5.1 General-purpose web UI for Kubernetes clusters playcekube/linkerd-jaeger 2.11.1 stable-2.11.1 The Linkerd-Jaeger extension adds distributed t... playcekube/linkerd-multicluster 2.11.1 stable-2.11.1 The Linkerd-Multicluster extension contains res... playcekube/linkerd-viz 2.11.1 stable-2.11.1 The Linkerd-Viz extension contains observabilit... playcekube/linkerd2 2.11.1 stable-2.11.1 Linkerd gives you observability, reliability, a... playcekube/metrics-server 3.8.2 0.6.1 Metrics Server is a scalable, efficient source ... playcekube/minio 4.0.2 RELEASE.2022-05-08T23-50-31Z Multi-Cloud Object Storage playcekube/oauth2-proxy 6.2.0 7.2.0 A reverse proxy that provides authentication wi... playcekube/opendistro-es 1.13.3 1.13.3 Open Distro for Elasticsearch playcekube/tekton-pipeline v0.32.1 v0.32.1 A Helm chart for tekton-pipeline playcekube/velero 2.30.1 1.9.0 A Helm chart for velero
helm chart 설치를 확인합니다.
helm list -A
결과 예제
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION csi-driver-nfs playcekube 1 2022-12-28 19:07:34.140481979 +0900 KST deployed csi-driver-nfs-v4.0.0 v4.0.0 ingress-nginx playcekube 1 2022-12-28 19:05:41.040859105 +0900 KST deployed ingress-nginx-4.1.4 1.2.1 metrics-server kube-system 1 2022-12-28 19:05:39.871330188 +0900 KST deployed metrics-server-3.8.2 0.6.1
addons 설치 방법
Playce Kube 에서 제공되는 Helm chart 는 Helm 에서 제공하는 cli 로 쉽게 설치 할 수 있습니다
또한, 미리 준비된 설치 스크립트로 설치된 클러스터에 더 적절한 설정으로 설치할 수 있도록 지원합니다
설치 리스트 확인
ls -l /playcecloud/playcekube/kube-packages/*/install*.sh
설치 방법 및 순서
각 애드온 들 에 대한 인증을 적용하기 위해 keycloak 설치가 사전 진행 되어야 합니다.
keycloak 설치
/playcecloud/playcekube/kube-packages/keycloak/install-helm-charts.sh /playcecloud/playcekube/kube-packages/oauth2-proxy/install-helm-charts.sh
velero (백업) 설치
/playcecloud/playcekube/kube-packages/minio/install-helm-charts.sh /playcecloud/playcekube/kube-packages/velero/install-helm-charts.sh
모니터링 설치
/playcecloud/playcekube/kube-packages/prometheus/install-helm-charts.sh
로깅 설치
/playcecloud/playcekube/kube-packages/opendistro-es/install-helm-charts.sh
gitea 설치
/playcecloud/playcekube/kube-packages/gitea/install-helm-charts.sh
harbor 설치
/playcecloud/playcekube/kube-packages/harbor/install-helm-charts.sh
tekton-pipeline 설치
/playcecloud/playcekube/kube-packages/tekton/install-helm-charts.sh
argo-cd 설치
/playcecloud/playcekube/kube-packages/argo-cd/install-helm-charts.sh /playcecloud/playcekube/kube-packages/argo-rollouts/install-helm-charts.sh /playcecloud/playcekube/kube-packages/argo-events/install-helm-charts.sh
linkerd2 (서비스매시) 설치
/playcecloud/playcekube/kube-packages/linkerd2/install-helm-charts.sh /playcecloud/playcekube/kube-packages/linkerd-viz/install-helm-charts.sh /playcecloud/playcekube/kube-packages/linkerd-jaeger/install-helm-charts.sh /playcecloud/playcekube/kube-packages/linkerd-multicluster/install-helm-charts.sh
문제 해결(FAQ)
https://github.com/playcecloud/playcekube/issues