Поиск по сайту:

Как установить и настроить PaaS-сервер OpenShift Origin в Ubuntu 20.04


Это руководство существует для этих версий ОС

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

На этой странице

  1. Предпосылки
  2. Установите Docker CE
  3. Загрузить OpenShift Origin
  4. Запустить исходный кластер OpenShif
  5. Создать проект в OpenShift
  6. Доступ к веб-консоли OpenShift
  7. Развертывание приложения в OpenShift Origin
  8. Подтвердить внешний доступ
  9. Заключение

OpenShift — это бесплатная платформа облачной разработки с открытым исходным кодом как услуга (PaaS), разработанная Red Hat, которая позволяет разработчикам разрабатывать и развертывать свои приложения в облачной инфраструктуре. Это дистрибутив Kubernetes от сообщества, который позволяет ускорить циклы разработки и выпуска приложений. Он поставляется с простым и удобным веб-интерфейсом, который позволяет вам отслеживать ресурсы контейнера, состояние контейнера, узлы, на которых находятся контейнеры, IP-адреса узлов и т. д.

В этом руководстве мы объясним, как установить OpenShift Origin на сервер Ubuntu 20.04.

Предпосылки

  • Сервер под управлением Ubuntu 20.04.
  • На вашем сервере настроен пароль root.

Установите Докер СЕ

Во-первых, вам нужно будет установить Docker CE в вашей системе, чтобы запускать все службы OKD в контейнерах Docker. По умолчанию последняя версия 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 Origin

На момент написания этого руководства последней версией 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

Теперь запустите кластер OpenShift Origin, указав IP-адрес вашей системы:

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 Origin

Сначала войдите в 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:

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:            

Вы также можете проверить статус Pods с помощью следующей команды:

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

Заключение

В этой статье мы успешно установили и настроили OpenShift Origin с одним узлом на Ubuntu 20.04. Теперь вы можете приступить к разработке своего первого приложения в среде OpenShift. не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.