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.confplaycecloud.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_playcekubedeploy 서버 설치 확인
설치 요소를 확인합니다. 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_registryplaycekube_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 에서 사용하는 컨테이너 이미지 레포