오픈 클라우드 플랫폼 K-PaaS (구 PaaS-TA) 6.5 Container Platform 설치 (on Openstack)
현재는 오픈 클라우드 플랫폼 (K-PaaS) 이라는 이름으로 변경 되었지만, 이전에 사용하던 명칭 PaaS-TA 는 "Platform as a Service - 'Thank you' 의 속어인 'TA' 의 의미로, 한국지능정보사회진흥원 (NIA) 의 지원으로 다양한 국내 업체와 협업을 통해 만든 개방형 클라우드 플랫폼입니다. PaaS-TA 는 오픈소스 커뮤니티인 Cloud Foundry 를 기반으로 한 클라우드 플랫폼으로, 애플리케이션을 빠르고 쉽게 배포하고 실행할 수 있는 환경을 제공합니다. 그리고 다양한 기능과 서비스를 제공하여 개발자들이 애플리케이션을 효율적으로 구축하고 관리할 수 있도록 도와줍니다. 몇 가지 주요 기능은 다음과 같습니다.
- 애플리케이션 배포 및 관리 : 애플리케이션을 컨테이너화하여 배포하고, 애플리케이션 스케일링, 로드 밸런싱, 자동 복구 등을 관리할 수 있습니다. 개발자는 애플리케이션의 빌드, 배포, 롤백 등을 간편하게 수행할 수 있습니다.
- 서비스 관리 : 다양한 서비스를 제공하며, 데이터베이스, 메시징, 캐싱 등과 같은 백엔드 서비스를 애플리케이션에서 활용할 수 있습니다. 이를 통해 개발자는 별도의 서비스 구축 없이 필요한 기능을 활용할 수 있습니다.
- 스케줄링 및 자원 관리 : 애플리케이션의 스케줄링 및 자원 관리를 지원하여, 리소스의 효율적인 활용과 애플리케이션의 안정적인 운영을 도와줍니다.
- 모니터링 및 로깅 : 애플리케이션의 상태, 리소스 사용량, 로그 등을 모니터링하고 관리할 수 있는 기능을 제공합니다. 이를 통해 개발자는 애플리케이션의 성능과 안정성을 실시간으로 확인하고 문제를 해결할 수 있습니다.
PaaS-TA 는 오픈소스이므로 기업이나 개발자들은 소스 코드를 활용하여 자체적으로 구축하거나 커스터마이징 할 수 있습니다.
본 PaaS-TA CP (Container Platform) 설치 매뉴얼은 공식 문서를 기반으로 테스트하고 작성되었습니다.
- PaaS-TA Document : https://github.com/PaaS-TA/paas-ta-container-platform/blob/master/install-guide/Readme.md
- BOSH Document : http://bosh.io
- Cloud Foundry Document : https://docs.cloudfoundry.org
설치하는 PaaS-TA 버전은 6.5 이고, 서비스형 배포 방식이며, IaaS 환경은 Openstack 입니다.
Openstack 환경 구성은 아래 포스팅을 확인해주세요.
- Openstack 환경 구성 : https://sysdocu.tistory.com/1833
- VM 생성 : https://sysdocu.tistory.com/1836
[ 서버 준비 ]
1) Openstack 환경의 VM 4대를 준비합니다.
- VM (최소) 사양 : 2 CPU / 8GB RAM
- OS : Ubuntu 20.04
- VM 4대 : Master node 1대 / Slave node 3대
2) VM 과 같은 내부 네트워크를 사용하는 곳에 NFS 서버를 추가로 준비합니다. (NFS 서버 설치 : 바로가기)
3) 모든 작업은 공식 Documents 에 안내되어 있는대로 ubuntu 계정을 사용합니다. 계정이 없거나 권한이 부족한 경우 아래절차로 설정해주세요.
- useradd -m -d /home/ubuntu -s /bin/bash -G sudo ubuntu
- echo "ubuntu:12345678@#" | chpasswd
- echo "ubuntu ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
- mkdir /home/ubuntu/.ssh
- chown ubuntu.ubuntu /home/ubuntu/.ssh
1. Kubespray 설치
먼저, 설치가 잘 될 수 있도록 ufw 방화벽을 중지하고 OS 환경 업데이트를 진행합니다.
(모든 노드에서)
$ sudo systemctl disable --now ufw
$ sudo apt -y update
$ sudo apt -y upgrade
1) 설치 환경 구성
Kubespray 를 이용해 Kubernetes Cluster 를 쉽게 구성할 수 있습니다.
우선 각 서버를 지칭하고, 연결이 수월할 수 있도록 내부 IP 와 호스트명을 설정합니다.
(모든 노드에서)
$ sudo vi /etc/hosts
127.0.0.1 localhost 172.16.1.20 master 172.16.1.89 worker1 172.16.1.211 worker2 172.16.1.252 worker3 172.16.1.32 nfs |
(각 노드에서)
$ sudo hostnamectl set-hostname master // master 노드에서
$ sudo hostnamectl set-hostname worker1 // worker1 노드에서
$ sudo hostnamectl set-hostname worker2 // worker2 노드에서
$ sudo hostnamectl set-hostname worker3 // worker3 노드에서
$ sudo hostnamectl set-hostname nfs // nfs 노드에서
Kubespray 설치를 위해 SSH Key 를 인벤토리의 모든 서버들에 복사합니다.
(Master 노드에서)
$ ssh-keygen -t rsa -m PEM
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ubuntu/.ssh/id_rsa): (엔터)
Enter passphrase (empty for no passphrase): (엔터)
Enter same passphrase again: (엔터)
Your identification has been saved in /home/ubuntu/.ssh/id_rsa
Your public key has been saved in /home/ubuntu/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:7F9X4w2PGnTkju37pueRdcYvZZcDDmci0+hhoEJeOqA ubuntu@master
The key's randomart image is:
+---[RSA 3072]----+
| . . . . |
|. + o . . o |
|E = . * + +. |
| o .o + *o...|
| S. ..++X|
| . . =.OX|
| . + *++|
| . . = .+|
| . . +Bo|
+----[SHA256]-----+
아래 명령으로 출력된 공개키를 모든 Master node (본서버 포함), Worker node 에 복사합니다.
$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDA7lkRlLtIYjeVdLOBCe+jahcDKacVV/hZkAYKEj49pX0EQ2sLRVTdaEkrFws3rBp9MRwI1SeAj3LiqKzpOYeltbIM2v20z1G8EiJIooMdtqlDAbiPlJI4Dz2/UU3KkEOcvP1OLhx9Ctd6xCQTSUuDkb0XenufKHiMFlN0S+fQPeE5YFMe7hpbFuuVTVMqpt1Nev1d2LXfecSj240J7gTC/CysMrdOOG7cyFGdl5CzA8SWKfaI+2R8p19j7fUhc1rYJcJ6CtMuw/jTahSkN+R+6kPvE1+xcTtN/bHJQ/HupTFNXaKs2u6aWrHCUVHe3ghGbyBaAKNVlHxiI2IB1pF98BVsAjfRzDTj2qHv/wVuNTroE0ux0ayu8wDTjNn9Vv6ou2BvfnAoS2qgBdRnKkfnXHcz+eHWl93m+EjfQ2KoEOLD23O91SecU0+SWpWF7egecy/6H7wRsgOlNMeNKMbeRGk9xG0uqE1ip7bsrAOFYYAbQI89Zc5AbzgArVF/j00= ubuntu@master
위 내용을 복사하여 아래와 같이 모든 노드에 저장합니다.
(모든 노드에서 - 본 master 서버 포함)
$ vi .ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDA7lkRlLtIYjeVdLOBCe+jahcDKacVV/hZkAYKEj49pX0EQ2sLRVTdaEkrFws3rBp9MRwI1SeAj3LiqKzpOYeltbIM2v20z1G8EiJIooMdtqlDAbiPlJI4Dz2/UU3KkEOcvP1OLhx9Ctd6xCQTSUuDkb0XenufKHiMFlN0S+fQPeE5YFMe7hpbFuuVTVMqpt1Nev1d2LXfecSj240J7gTC/CysMrdOOG7cyFGdl5CzA8SWKfaI+2R8p19j7fUhc1rYJcJ6CtMuw/jTahSkN+R+6kPvE1+xcTtN/bHJQ/HupTFNXaKs2u6aWrHCUVHe3ghGbyBaAKNVlHxiI2IB1pF98BVsAjfRzDTj2qHv/wVuNTroE0ux0ayu8wDTjNn9Vv6ou2BvfnAoS2qgBdRnKkfnXHcz+eHWl93m+EjfQ2KoEOLD23O91SecU0+SWpWF7egecy/6H7wRsgOlNMeNKMbeRGk9xG0uqE1ip7bsrAOFYYAbQI89Zc5AbzgArVF/j00= ubuntu@master |
그리고 모든 노드에 NFS Client 패키지를 설치합니다.
아래에서 NFS 를 마운트 하기위해 사용할 예정입니다.
$ sudo apt -y install nfs-common
(Master 노드에서 - 이제 Worker 노드에서의 추가 작업은 없음)
Kubespray 설치파일을 다운로드 받고 설치를 이어갑니다.
아래의 branch_v1.4.x 는 특정 버전을 적는것이 아니라 문자 그대로 x 를 입력해야 합니다.
$ git clone https://github.com/PaaS-TA/paas-ta-container-platform-deployment.git -b branch_v1.4.x
Cloning into 'paas-ta-container-platform-deployment'...
remote: Enumerating objects: 11524, done.
remote: Counting objects: 100% (11523/11523), done.
remote: Compressing objects: 100% (5862/5862), done.
remote: Total 11524 (delta 4535), reused 11330 (delta 4347), pack-reused 1
Receiving objects: 100% (11524/11524), 274.90 MiB | 20.39 MiB/s, done.
Resolving deltas: 100% (4535/4535), done.
Updating files: 100% (7807/7807), done.
설치 경로로 이동해서 환경변수 파일을 수정합니다. 변수명에 해당되는 값을 입력하면 됩니다.
worker node 의 수가 더 많을경우 행을 더 추가하여 입력할 수 있습니다.
$ cd paas-ta-container-platform-deployment/standalone/single_control_plane
$ vi cp-cluster-vars.sh
#!/bin/bash export MASTER_NODE_HOSTNAME=master export MASTER_NODE_PUBLIC_IP=115.68.142.67 export MASTER_NODE_PRIVATE_IP=172.16.1.20 ## Worker Node Count Info export WORKER_NODE_CNT=3 ## Add Worker Node Info export WORKER1_NODE_HOSTNAME=worker1 export WORKER1_NODE_PRIVATE_IP=172.16.1.89 export WORKER2_NODE_HOSTNAME=worker2 export WORKER2_NODE_PRIVATE_IP=172.16.1.211 export WORKER3_NODE_HOSTNAME=worker3 export WORKER3_NODE_PRIVATE_IP=172.16.1.252 ## Storage Type Info (eg. nfs, rook-ceph) export STORAGE_TYPE=nfs export NFS_SERVER_PRIVATE_IP=172.16.1.32 |
2) 에러 사전 조치
설치 전, 몇가지 에러 방지를 위해 아래와 같은 작업을 진행합니다.
공식 Documents 에서는 아래 내용이 빠져 있으며, 그대로 설치 (deploy-cp-cluster.sh 실행) 할 경우, OS 환경에 따라 여러개의 에러가 발생하는데, 아래는 에러 일부를 사전에 조치하는 방법입니다.
추후, 배포되는 설치 소스가 업데이트 되면서 아래 내용이 필요없게 되거나, 또 다른 조치 방법이 필요할 수 있습니다.
(1) NFS 공유 디렉토리 설정
NFS 를 사용할 경우 아래 파일에서 공유 디렉토리 위치를 변경해줘야 합니다.
파일에 기본 설정된 값은 /home/share/nfs 이므로, 실제 NFS 서버내에 구성한 공유 디렉토리가 /data 일때 아래와 같이 변경합니다.
설치중 deployment.yaml.ori 파일이 deployment.yaml 파일로 복사되므로 deployment.yaml 파일을 수정하지 않도록 주의합니다.
$ sed -i 's/home\/share\/nfs/data/' ../applications/nfs-provisioner-4.0.0/deployment.yaml.ori
또는 아래와 같이 파일을 열어 직접 변경합니다.
$ vi ../applications/nfs-provisioner-4.0.0/deployment.yaml.ori
... - name: NFS_PATH # do not change value: /data # path to nfs directory setup ... nfs: server: {NFS_SERVER_PRIVATE_IP} path: /data ... |
(2) nf_conntrack 사용
리눅스 커널 4.18 이상의 버전에는 nf_conntrack_ipv4 이름이 nf_conntrack 으로 변경되었습니다. 설치 스크립트에서는 nf_conntrack_ipv4 를 찾지못해 'Module nf_conntrack_ipv4 not found' 메세지가 출력되므로, 모듈명을 수정해 주어야 합니다.
$ sed -i 's/nf_conntrack_ipv4/nf_conntrack/' extra_playbooks/roles/kubernetes/node/tasks/main.yml
$ sed -i 's/nf_conntrack_ipv4/nf_conntrack/' roles/kubernetes/node/tasks/main.yml
(3) Istio 설치 명령어 수정
아래 두개 파일에 잘못된 문자가 있는데 맨 뒤에 å 를 a 로 고쳐줘야 합니다.
curl -L https://istio.io/downloadIstio | ISTIO_VERSION=1.11.4 TARGET_ARCH=x86_64 sh -å
$ sed -i 's/å/a/' extra_playbooks/roles/paasta-cp/istio/tasks/main.yml
$ sed -i 's/å/a/' roles/paasta-cp/istio/tasks/main.yml
3) 설치 및 확인
설치 스크립트를 실행해 설치를 진행합니다.
$ bash deploy-cp-cluster.sh
아래는 설치중 출력되는 에러 메세지 입니다.
에러가 발생하면 무시가 되면서 설치가 계속 진행됩니다.
혹시 방화벽 룰이 설정된 경우, 설치가 제대로 이루어지지 않거나 설치과정에서 멈추는 경우가 있으니 설치가 잘 되지 않는 분은 방화벽을 잠시 내리고 설치해보는 것도 좋습니다.
TASK [etcd : Get currently-deployed etcd version] **************
fatal: [master]: FAILED! => {"changed": false, "cmd": "/usr/local/bin/etcd --version", "msg": "[Errno 2] No such file or directory: b'/usr/local/bin/etcd'", "rc": 2, "stderr": "", "stderr_lines": [], "stdout": "", "stdout_lines": []}
...ignoring
TASK [kubernetes/control-plane : Check which kube-control nodes are already members of the cluster] **************
fatal: [master]: FAILED! => {"changed": false, "cmd": ["/usr/local/bin/kubectl", "get", "nodes", "--selector=node-role.kubernetes.io/control-plane", "-o", "json"], "delta": "0:00:00.046634", "end": "2023-07-20 23:35:05.782368", "msg": "non-zero return code", "rc": 1, "start": "2023-07-20 23:35:05.735734", "stderr": "The connection to the server localhost:8080 was refused - did you specify the right host or port?", "stderr_lines": ["The connection to the server localhost:8080 was refused - did you specify the right host or port?"], "stdout": "", "stdout_lines": []}
...ignoring
TASK [network_plugin/calico : Calico | Get existing FelixConfiguration] *************
fatal: [master]: FAILED! => {"changed": false, "cmd": ["/usr/local/bin/calicoctl.sh", "get", "felixconfig", "default", "-o", "json"], "delta": "0:00:00.060760", "end": "2023-07-24 05:55:32.486934", "msg": "non-zero return code", "rc": 1, "start": "2023-07-24 05:55:32.426174", "stderr": "resource does not exist: FelixConfiguration(default) with error: felixconfigurations.crd.projectcalico.org \"default\" not found", "stderr_lines": ["resource does not exist: FelixConfiguration(default) with error: felixconfigurations.crd.projectcalico.org \"default\" not found"], "stdout": "null", "stdout_lines": ["null"]}
...ignoring
TASK [network_plugin/calico : Calico | Get existing calico network pool] **************
fatal: [master]: FAILED! => {"changed": false, "cmd": ["/usr/local/bin/calicoctl.sh", "get", "ippool", "default-pool", "-o", "json"], "delta": "0:00:00.042520", "end": "2023-07-20 23:36:36.320521", "msg": "non-zero return code", "rc": 1, "start": "2023-07-20 23:36:36.278001", "stderr": "resource does not exist: IPPool(default-pool) with error: ippools.crd.projectcalico.org \"default-pool\" not found", "stderr_lines": ["resource does not exist: IPPool(default-pool) with error: ippools.crd.projectcalico.org \"default-pool\" not found"], "stdout": "null", "stdout_lines": ["null"]}
...ignoring
TASK [network_plugin/calico : Calico | Get existing BGP Configuration] ***************
fatal: [master]: FAILED! => {"changed": false, "cmd": ["/usr/local/bin/calicoctl.sh", "get", "bgpconfig", "default", "-o", "json"], "delta": "0:00:00.034705", "end": "2023-07-20 23:36:37.450199", "msg": "non-zero return code", "rc": 1, "start": "2023-07-20 23:36:37.415494", "stderr": "resource does not exist: BGPConfiguration(default) with error: bgpconfigurations.crd.projectcalico.org \"default\" not found", "stderr_lines": ["resource does not exist: BGPConfiguration(default) with error: bgpconfigurations.crd.projectcalico.org \"default\" not found"], "stdout": "null", "stdout_lines": ["null"]}
...ignoring
TASK [kubernetes-apps/ansible : Kubernetes Apps | Register coredns deployment annotation `createdby`] ***************
fatal: [master]: FAILED! => {"changed": false, "cmd": ["/usr/local/bin/kubectl", "--kubeconfig", "/etc/kubernetes/admin.conf", "get", "deploy", "-n", "kube-system", "coredns", "-o", "jsonpath={ .spec.template.metadata.annotations.createdby }"], "delta": "0:00:00.059931", "end": "2023-07-20 23:37:11.974466", "msg": "non-zero return code", "rc": 1, "start": "2023-07-20 23:37:11.914535", "stderr": "Error from server (NotFound): deployments.apps \"coredns\" not found", "stderr_lines": ["Error from server (NotFound): deployments.apps \"coredns\" not found"], "stdout": "", "stdout_lines": []}
...ignoring
TASK [kubernetes-apps/ansible : Kubernetes Apps | Register coredns service annotation `createdby`] *****************
fatal: [master]: FAILED! => {"changed": false, "cmd": ["/usr/local/bin/kubectl", "--kubeconfig", "/etc/kubernetes/admin.conf", "get", "svc", "-n", "kube-system", "coredns", "-o", "jsonpath={ .metadata.annotations.createdby }"], "delta": "0:00:00.061244", "end": "2023-07-20 23:37:12.300058", "msg": "non-zero return code", "rc": 1, "start": "2023-07-20 23:37:12.238814", "stderr": "Error from server (NotFound): services \"coredns\" not found", "stderr_lines": ["Error from server (NotFound): services \"coredns\" not found"], "stdout": "", "stdout_lines": []}
...ignoring
에러가 발생해도 자동으로 넘어가면서 설치가 완료되었습니다. 설치가 잘 되었는지 확인합니다.
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready control-plane 16m v1.25.6
worker1 Ready <none> 15m v1.25.6
worker2 Ready <none> 15m v1.25.6
worker3 Ready <none> 15m v1.25.6
$ kubectl get pods -n kube-system
NAME READY STATUS RESTARTS AGE
calico-kube-controllers-75748cc9fd-5k46h 1/1 Running 0 16m
calico-node-7ldrx 1/1 Running 0 16m
calico-node-f48sv 1/1 Running 0 16m
calico-node-nxspr 1/1 Running 0 16m
calico-node-zb9c2 1/1 Running 0 16m
coredns-588bb58b94-2bbtm 1/1 Running 0 15m
coredns-588bb58b94-5prkj 1/1 Running 0 15m
dns-autoscaler-5b9959d7fc-6qzsr 1/1 Running 0 15m
kube-apiserver-master 1/1 Running 1 17m
kube-controller-manager-master 1/1 Running 2 (14m ago) 17m
kube-proxy-89x74 1/1 Running 0 16m
kube-proxy-8nfnp 1/1 Running 0 16m
kube-proxy-bt478 1/1 Running 0 16m
kube-proxy-v8hjh 1/1 Running 0 16m
kube-scheduler-master 1/1 Running 2 (14m ago) 17m
metrics-server-64c4c5ddbc-t6qq5 1/1 Running 0 15m
nginx-proxy-worker1 1/1 Running 0 16m
nginx-proxy-worker2 1/1 Running 0 16m
nginx-proxy-worker3 1/1 Running 0 16m
nodelocaldns-74st7 1/1 Running 0 15m
nodelocaldns-9dk9v 1/1 Running 0 15m
nodelocaldns-c2d5f 1/1 Running 0 15m
nodelocaldns-rv6cf 1/1 Running 0 15m
설치 또는 실행이 중지된 Pod 가 있는지 확인합니다.
아무런 결과가 나오지 않아야 합니다.
$ kubectl get pods -A |grep Pending
The connection to the server 127.0.0.1:6443 was refused - did you specify the right host or port?
이와 같은 메세지가 출력될 경우 조금 기다렸다가 다시 확인해보세요. 클러스터 구성이 모두 정상 가동되려면 약간의 시간이 필요합니다.
* 참고 : Kubespray 삭제
$ bash reset-cp-cluster.sh
...
Are you sure you want to reset cluster state? Type 'yes' to reset your cluster. [no]: yes
...
그리고 NFS 서버 공유 디렉토리에 있던 데이터를 모두 지워줍니다.
(NFS 서버에서)
# rm -rf /data/*
2. 컨테이너 플랫폼 포털 설치
컨테이너 플랫폼 포털 (대시보드) 을 이용해 관리자 및 이용자가 쉽게 응용프로그램 등을 생성하고 관리할 수 있습니다.
설치 방법을 알아봅니다.
1) 컨테이너 플랫폼 포털 Deployment 파일 다운로드
(Master 노드에서)
포털 배포 파일 다운로드 경로를 생성합니다.
$ mkdir -p ~/workspace/container-platform
$ cd ~/workspace/container-platform
포털 배포 파일을 다운로드하고 압축을 해제합니다.
$ wget --content-disposition https://nextcloud.paas-ta.org/index.php/s/WtNQn2agk6epFHC/download
$ tar xvzf cp-portal-deployment-v1.4.0.tar.gz
* 참고 : Deployment 파일 디렉토리 구성
├── script # 컨테이너 플랫폼 포털 배포 관련 변수 및 스크립트 파일 위치
├── images # 컨테이너 플랫폼 포털 이미지 파일 위치
├── charts # 컨테이너 플랫폼 포털 Helm Charts 파일 위치
├── values_orig # 컨테이너 플랫폼 포털 Helm Charts values.yaml 파일 위치
└── keycloak_orig # 컨테이너 플랫폼 포털 사용자 인증 관리를 위한 Keycloak 배포 관련 파일 위치
2) 컨테이너 플랫폼 포털 변수 정의
$ cd cp-portal-deployment/script
$ vi cp-portal-vars.sh
# COMMON VARIABLE (Please change the values of the four variables below.) K8S_MASTER_NODE_IP="115.68.142.67" # Kubernetes master 서버의 공인 IP HOST_CLUSTER_IAAS_TYPE="OPENSTACK" # Host cluster IaaS type ('AWS' or 'OPENSTACK') PROVIDER_TYPE="standalone" # Container Platform Portal Provider Type ('standalone' or 'service') ... |
3) 컨테이너 플랫폼 포털 설치
설치를 하기 전에 root 사용자로 변경합니다.
설치를 반복해보니 컨테이너 플랫폼 포털은 root 사용자로 설치가 잘 되는것을 확인했습니다.
$ sudo su -
# cd /home/ubuntu/workspace/container-platform/cp-portal-deployment/script
파일에 실행권한을 주고 실행합니다.
# chmod +x deploy-cp-portal.sh
# ./deploy-cp-portal.sh
컨테이너 플랫폼 포털 관련 리소스가 정상적으로 배포되었는지 확인합니다.
리소스 Pod 의 경우 Node 에 바인딩 및 컨테이너 생성 후 Error 또는 Pending 상태에서 시간이 지나 Running 상태로 전환되기도 하므로 시간을 갖고 기다려봅니다.
Harbor 리소스 조회
# kubectl get all -n harbor
>> 정상
MariaDB 리소스 조회
# kubectl get all -n mariadb
>> 정상
Keycloak 리소스 조회
# kubectl get all -n keycloak
>> 정상
컨테이너 플랫폼 포털 리소스 조회
# kubectl get all -n cp-portal
>> 정상
혹시 설치가 잘 안되는 경우 아래 '컨테이너 플랫폼 포털 리소스 삭제' 방법대로 설치된 파일을 삭제한 다음에, deploy-cp-portal.sh 설치 스크립트 파일의 내용을 부분적으로 실행해 서 에러 원인을 찾고 조치하면 문제가 되는 부분이 어디인지 확인을 할 수 있습니다.
4) 컨테이너 플랫폼 포털 접속
컨테이너 플랫폼 포털은 아래 주소와 같이 Master node 의 IP 와 포트 32703 으로 접속 가능합니다.
보안 강화를 위해 로그인 후 제일 먼저 패스워드 변경하는 것이 좋습니다.
http://115.68.142.67:32703
ID : admin
PW : admin
Harbor 오픈 소스 컨테이너 이미지 레지스트리의 대시보드 URL 과 기본 계정입니다.
이것도 마찬가지로 처음 로그인 후 패스워드를 변경하는 것이 좋습니다.
http://115.68.142.84:30002
ID : admin
PW : Harbor12345
Keycloak 소스 싱글 사인온 (Single Sign-On, SSO) 솔루션 대시보드 URL 과 기본 계정입니다.
http://115.68.142.84:32710
ID : admin
PW : admin
* 참고 : 컨테이너 플랫폼 포털 리소스 삭제
# chmod +x uninstall-cp-portal.sh
# ./uninstall-cp-portal.sh
Are you sure you want to delete the container platform portal? <y/n> y
...
# sudo rm -rf ../keycloak
'리눅스 > PaaS' 카테고리의 다른 글
Heroku 에 PHP 애플리케이션 배포하는 2가지 방법 (Web, CLI), Laravel 배포 방법 (0) | 2023.11.24 |
---|---|
CF (Cloud Foundry) Paketo Buildpack 의 개발언어 제공 버전 확인하기 (0) | 2023.11.21 |
Ubuntu 22.04 Kind Cluster 에서 Korifi 설치하기 (스크립트를 이용한 간단 설치) (0) | 2023.11.02 |
Kubernetes 1.28, Kind 에서 Korifi 설치 및 PHP 애플리케이션 배포하기 (0) | 2023.10.24 |
오픈 클라우드 플랫폼 K-PaaS (구 PaaS-TA) 6.5 Container Platform Portal 사용하기 (0) | 2023.08.09 |