웹사이트 검색

Ubuntu 20.04에서 OpenShift Origin PaaS 서버를 설치하고 구성하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • Ubuntu 20.04(Focal Fossa)
  • Ubuntu 18.04(Bionic Beaver)

이 페이지에서

  1. 전제 조건
  2. Docker CE 설치
  3. OpenShift 오리진 다운로드
  4. OpenSif 오리진 클러스터 시작
  5. OpenShift에서 프로젝트 생성\n
  6. OpenShift 웹 콘솔에 액세스
  7. OpenShift Origin에 애플리케이션 배포\n
  8. 외부 액세스 확인\n
  9. 결론

OpenShift는 개발자가 클라우드 인프라에서 애플리케이션을 개발하고 배포할 수 있도록 하는 Red Hat에서 개발한 무료 오픈 소스 클라우드 개발 PaaS(Platform as a Service)입니다. Kubernetes의 커뮤니티 배포이며 애플리케이션의 개발 및 릴리스 주기를 단축할 수 있습니다. 컨테이너 리소스, 컨테이너 상태, 컨테이너가 상주하는 노드, 노드의 IP 주소 등을 모니터링할 수 있는 간단하고 사용하기 쉬운 웹 인터페이스가 함께 제공됩니다.

이 튜토리얼에서는 Ubuntu 20.04 서버에 OpenShift Origin을 설치하는 방법을 설명합니다.

전제 조건

  • Ubuntu 20.04를 실행하는 서버.\n
  • 서버에 루트 암호가 구성되어 있습니다.\n

도커 CE 설치

먼저 Docker 컨테이너에서 모든 OKD 서비스를 실행하려면 시스템에 Docker CE를 설치해야 합니다. 기본적으로 Docker CE의 최신 버전은 Ubuntu 20.04 기본 리포지토리에서 사용할 수 있습니다. 다음 명령을 실행하여 설치할 수 있습니다.

apt-get install docker.io -y

Docker가 설치되면 Docker 서비스를 시작하고 다음 명령을 사용하여 부팅 시 시작되도록 활성화합니다.

systemctl start docker
systemctl enable docker

다음 명령을 사용하여 Docker 서비스의 상태를 확인할 수도 있습니다.

systemctl status docker

다음 출력이 표시되어야 합니다.

? docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; disabled; vendor preset: enabled)
     Active: active (running) since Fri 2020-05-29 12:25:47 UTC; 2s ago
TriggeredBy: ? docker.socket
       Docs: https://docs.docker.com
   Main PID: 48433 (dockerd)
      Tasks: 10
     Memory: 36.5M
     CGroup: /system.slice/docker.service
             ??48433 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

May 29 12:25:47 ubunt4 dockerd[48433]: time="2020-05-29T12:25:47.215078550Z" level=warning msg="Your kernel does not support swap memory l>
May 29 12:25:47 ubunt4 dockerd[48433]: time="2020-05-29T12:25:47.215139097Z" level=warning msg="Your kernel does not support cgroup blkio >
May 29 12:25:47 ubunt4 dockerd[48433]: time="2020-05-29T12:25:47.215169580Z" level=warning msg="Your kernel does not support cgroup blkio >
May 29 12:25:47 ubunt4 dockerd[48433]: time="2020-05-29T12:25:47.215721944Z" level=info msg="Loading containers: start."
May 29 12:25:47 ubunt4 dockerd[48433]: time="2020-05-29T12:25:47.418058547Z" level=info msg="Default bridge (docker0) is assigned with an >
May 29 12:25:47 ubunt4 dockerd[48433]: time="2020-05-29T12:25:47.515158041Z" level=info msg="Loading containers: done."
May 29 12:25:47 ubunt4 dockerd[48433]: time="2020-05-29T12:25:47.545778830Z" level=info msg="Docker daemon" commit=afacb8b7f0 graphdriver(>
May 29 12:25:47 ubunt4 dockerd[48433]: time="2020-05-29T12:25:47.546068892Z" level=info msg="Daemon has completed initialization"
May 29 12:25:47 ubunt4 dockerd[48433]: time="2020-05-29T12:25:47.599029431Z" level=info msg="API listen on /run/docker.sock"
May 29 12:25:47 ubunt4 systemd[1]: Started Docker Application Container Engine.

이 시점에서 Docker가 설치되어 실행 중입니다. 이제 다음 단계를 진행할 수 있습니다.

OpenShift 오리진 다운로드

이 튜토리얼을 작성할 당시 OpenShift Origin의 최신 버전은 v3.11.0입니다. 다음 명령을 사용하여 Git Hub 리포지토리에서 다운로드할 수 있습니다.

wget https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz

다운로드가 완료되면 다음 명령을 사용하여 다운로드한 파일의 압축을 풉니다.

tar -xvzf openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz

다음으로 디렉터리를 추출된 디렉터리로 변경하고 kubectl 및 oc 바이너리를 /usr/local/bin 디렉터리에 복사합니다.

cd openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit
cp oc kubectl /usr/local/bin/

그런 다음 다음 명령을 사용하여 OpenShift 클라이언트 유틸리티의 설치를 확인합니다.

oc version

다음 출력이 표시되어야 합니다.

oc v3.11.0+0cbc58b
kubernetes v1.11.0+d4cacc0
features: Basic-Auth GSSAPI Kerberos SPNEGO

다음으로 새 daemon.json 파일을 만들고 Insecure Docker 레지스트리 사용을 허용해야 합니다.

nano /etc/docker/daemon.json

다음 줄을 추가합니다.

 {
     "insecure-registries" : [ "172.30.0.0/16" ]
 }

파일을 저장하고 닫은 다음 Docker 서비스를 다시 시작하여 변경 사항을 구현합니다.

systemctl restart docker

OpenShif 오리진 클러스터 시작

이제 시스템 IP를 지정하여 OpenShift Origin 클러스터를 시작합니다.

oc cluster up --public-hostname=your-server-ip

서버가 성공적으로 시작되면 다음 출력이 표시되어야 합니다.

Login to server ...
Creating initial project "myproject" ...
Server Information ...
OpenShift server started.

The server is accessible via web console at:
    https://your-server-ip:8443

You are logged in as:
    User:     developer
    Password: 

To login as administrator:
    oc login -u system:admin

이제 다음 명령을 사용하여 관리자로 클러스터에 로그인합니다.

oc login -u system:admin

로그인하면 다음과 같은 결과가 표시됩니다.

Logged into "https://your-server-ip:8443" as "system:admin" using existing credentials.

You have access to the following projects and can switch between them with 'oc project ':

    default
    kube-dns
    kube-proxy
    kube-public
    kube-system
  * myproject
    openshift
    openshift-apiserver
    openshift-controller-manager
    openshift-core-operators
    openshift-infra
    openshift-node
    openshift-service-cert-signer
    openshift-web-console

Using project "myproject".

그런 다음 다음 명령을 사용하여 기본 프로젝트로 변경합니다.

oc project default

산출:

Now using project "default" on server "https://your-server-ip:8443".

이제 다음 명령을 사용하여 프로젝트의 현재 상태를 확인합니다.

oc status

다음 출력이 표시되어야 합니다.

In project default on server https://your-server-ip:8443

svc/docker-registry - 172.30.1.1:5000
  dc/docker-registry deploys docker.io/openshift/origin-docker-registry:v3.11 
    deployment #1 deployed 2 minutes ago - 1 pod

svc/kubernetes - 172.30.0.1:443 -> 8443

svc/router - 172.30.94.157 ports 80, 443, 1936
  dc/router deploys docker.io/openshift/origin-haproxy-router:v3.11 
    deployment #1 deployed 2 minutes ago - 1 pod

View details with 'oc describe /' or list everything with 'oc get all'.

OpenShift에서 프로젝트 생성

이제 다음 명령을 사용하여 개발자 사용자로 OpenShift에 로그인합니다.

oc login

아래와 같이 사용자 이름과 비밀번호를 입력하라는 메시지가 표시됩니다.

Authentication required for https://your-server-ip:8443 (openshift)
Username: developer
Password: 

개발자로 사용자 이름을 입력하고 개발자로 비밀번호를 입력하고 Enter 키를 누릅니다. 다음 출력이 표시되어야 합니다.

Login successful.

You have one project on this server: "myproject"

Using project "myproject".

새 프로젝트를 만들려면 다음 명령을 실행합니다.

oc new-project dev --display-name="Project - Dev" --description="My Project"

다음 출력이 표시되어야 합니다.

Now using project "dev" on server "https://your-server-ip:8443".

You can add applications to this project with the 'new-app' command. For example, try:

    oc new-app centos/ruby-25-centos7~https://github.com/sclorg/ruby-ex.git

to build a new example application in Ruby.

OpenShift 웹 콘솔에 액세스

이제 웹 브라우저를 열고 URL https://your-server-ip:8443/console을 입력하십시오. OpenShift 로그인 페이지가 표시되어야 합니다.

개발자 사용자 이름과 암호를 제공하고 로그인 버튼을 클릭합니다. 다음 페이지가 표시됩니다.

프로젝트 만들기 버튼을 클릭합니다. 다음 페이지가 표시됩니다.

필요한 모든 정보를 제공하고 만들기 버튼을 클릭하여 새 프로젝트를 만듭니다.

OpenShift 오리진에 애플리케이션 배포

먼저 다음 명령을 실행하여 개발자 사용자로 OpenShift에 로그인합니다.

oc login

아래와 같이 개발자 사용자로 로그인합니다.

Authentication required for https://your-server-ip:8443 (openshift)
Username: developer
Password: 
Login successful.

You have access to the following projects and can switch between them with 'oc project ':

  * dev
    my-project
    myproject

Using project "dev".

로그인하면 프로젝트를 OpenShift 웹 콘솔을 통해 생성한 my-project로 전환합니다.

oc project my-project

산출:

Now using project "my-project" on server "https://your-server-ip:8443".

다음으로 다음 명령을 사용하여 현재 프로젝트의 상태를 확인합니다.

oc status

산출:

In project My Project (my-project) on server https://your-server-ip:8443

You have no services, deployment configs, or build configs.
Run 'oc new-app' to create an application.

그런 다음 다음 명령을 사용하여 Docker Hub 레지스트리의 애플리케이션 이미지에 태그를 지정합니다.

oc tag --source=docker openshift/deployment-example:v2 deployment-example:latest

산출:

Tag deployment-example:latest set to openshift/deployment-example:v2.

그런 다음 다음 명령을 사용하여 애플리케이션을 OpenShift에 배포합니다.

oc new-app deployment-example

다음 출력이 표시되어야 합니다.

--> Found image da61bb2 (4 years old) in image stream "my-project/deployment-example" under tag "latest" for "deployment-example"

    * This image will be deployed in deployment config "deployment-example"
    * Port 8080/tcp will be load balanced by service "deployment-example"
      * Other containers can access this service through the hostname "deployment-example"
    * WARNING: Image "my-project/deployment-example:latest" runs as the 'root' user which may not be permitted by your cluster administrator

--> Creating resources ...
    deploymentconfig.apps.openshift.io "deployment-example" created
    service "deployment-example" created
--> Success
    Application is not exposed. You can expose services to the outside world by executing one or more of the commands below:
     'oc expose svc/deployment-example' 
    Run 'oc status' to view your app.

이제 다음 명령을 사용하여 애플리케이션 배포 상태를 확인합니다.

oc status

다음 출력이 표시되어야 합니다.

In project My Project (my-project) on server https://your-server-ip:8443

svc/deployment-example - 172.30.87.146:8080
  dc/deployment-example deploys istag/deployment-example:latest 
    deployment #1 deployed 36 seconds ago - 1 pod


2 infos identified, use 'oc status --suggest' to see details.

서비스에 대한 정보를 얻으려면 다음 명령을 실행하십시오.

oc get svc

산출:

NAME                 TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)    AGE
deployment-example   ClusterIP   172.30.87.146           8080/TCP   1m

자세한 정보를 얻으려면 다음 명령을 실행하십시오.

oc describe svc deployment-example

산출:

Name:              deployment-example
Namespace:         my-project
Labels:            app=deployment-example
Annotations:       openshift.io/generated-by=OpenShiftNewApp
Selector:          app=deployment-example,deploymentconfig=deployment-example
Type:              ClusterIP
IP:                172.30.87.146
Port:              8080-tcp  8080/TCP
TargetPort:        8080/TCP
Endpoints:         172.17.0.10:8080
Session Affinity:  None
Events:            

다음 명령을 사용하여 포드 상태를 확인할 수도 있습니다.

oc get pods

산출:

NAME                         READY     STATUS    RESTARTS   AGE
deployment-example-1-b9prf   1/1       Running   0          2m

이제 다음 명령을 사용하여 외부 액세스를 위해 애플리케이션을 노출합니다.

oc expose service/deployment-example

산출:

route.route.openshift.io/deployment-example exposed

경로 정보를 표시하려면 다음 명령을 실행합니다.

oc get routes

다음 출력이 표시되어야 합니다.

NAME                 HOST/PORT                                           PATH      SERVICES             PORT       TERMINATION   WILDCARD
deployment-example   deployment-example-my-project.your-server-ip.nip.io             deployment-example   8080-tcp                 None

외부 액세스 확인

이제 애플리케이션이 외부 액세스를 위해 준비되었습니다. 웹 브라우저를 열고 위 URL http://deployment-example-my-project.your-server-ip.nip.io를 입력합니다. 다음 페이지에 애플리케이션이 표시되어야 합니다.

애플리케이션을 삭제하려면 다음 명령을 실행합니다.

oc delete all -l app=deployment-example

다음 출력이 표시되어야 합니다.

pod "deployment-example-1-b9prf" deleted
replicationcontroller "deployment-example-1" deleted
service "deployment-example" deleted
deploymentconfig.apps.openshift.io "deployment-example" deleted
route.route.openshift.io "deployment-example" deleted

결론

이 기사에서는 Ubuntu 20.04에 단일 노드 OpenShift Origin을 성공적으로 설치하고 구성했습니다. 이제 OpenShift 환경에서 첫 번째 애플리케이션 개발을 시작할 수 있습니다. 질문이 있으시면 언제든지 저에게 물어보세요.