오픈 클라우드 플랫폼 K-PaaS (구 PaaS-TA) 6.5 Container Platform 설치 (on Openstack)

리눅스/PaaS|2023. 7. 7. 08:54
반응형

현재는 오픈 클라우드 플랫폼 (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

 

반응형

댓글()