Как установить и настроить PaaS-сервер OpenShift Origin в Ubuntu 20.04
Это руководство существует для этих версий ОС
- Ubuntu 20.04 (Focal Fossa)
- Ubuntu 18.04 (Bionic Beaver)
На этой странице
- Предпосылки
- Установите Docker CE
- Загрузить OpenShift Origin
- Запустить исходный кластер OpenShif
- Создать проект в OpenShift
- Доступ к веб-консоли OpenShift
- Развертывание приложения в OpenShift Origin
- Подтвердить внешний доступ
- Заключение
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.1468080/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. не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.