sources/tech/20190924 CodeReady Containers- complex solutions on OpenShift - Fedora.md
6.7 KiB
CodeReady Containers: complex solutions on OpenShift + Fedora
Want to experiment with (complex) solutions on OpenShift 4.1+? CodeReady Containers (CRC) on a physical Fedora server is a great choice. It lets you:
- Configure the RAM available to CRC / OpenShift (this is key as we’ll deploy Machine Learning, Change Data Capture, Process Automation and other solutions with significant memory requirements)
- Avoid installing anything on your laptop
- Standardize (on Fedora 30) so that you get the same results every time
Start by installing CRC and Ansible Agnostic Deployer (AgnosticD) on a Fedora 30 physical server. Then, you’ll use AgnosticD to deploy Open Data Hub on the OpenShift 4.1 environment created by CRC. Let’s get started!
Set up CodeReady Containers
$ dnf config-manager --set-enabled fedora
$ su -c 'dnf -y install git wget tar qemu-kvm libvirt NetworkManager jq libselinux-python'
$ sudo systemctl enable --now libvirtd
Let’s also add a user.
$ sudo adduser demouser
$ sudo passwd demouser
$ sudo usermod -aG wheel demouser
Download and extract CodeReady Containers:
$ su demouser
$ cd /home/demouser
$ wget https://mirror.openshift.com/pub/openshift-v4/clients/crc/1.0.0-beta.3/crc-linux-amd64.tar.xz
$ tar -xvf crc-linux-amd64.tar.xz
$ cd crc-linux-1.0.0-beta.3-amd64/
$ sudo cp ./crc /usr/bin
Set the memory available to CRC according to what you have on your physical server. For example, on a physical server with around 100GB you can allocate 80G to CRC as follows:
$ crc config set memory 81920
$ crc setup
You’ll need your pull secret from https://cloud.redhat.com/openshift/install/metal/user-provisioned.
$ crc start
That’s it — you can now login to your OpenShift environment:
eval $(crc oc-env) && oc login -u kubeadmin -p <password> https://api.crc.testing:6443
Set up Ansible Agnostic Deployer
github.com/redhat-cop/agnosticd is a fully automated two-phase deployer. Let’s deploy it!
$ su demouser
$ cd /home/demouser
$ git clone https://github.com/redhat-cop/agnosticd.git
$ cd agnosticd/ansible
$ python -m pip install --upgrade --trusted-host files.pythonhosted.org -r requirements.txt
$ python3 -m pip install --upgrade --trusted-host files.pythonhosted.org -r requirements.txt
$ pip3 install kubernetes
$ pip3 install openshift
$ pip install kubernetes
$ pip install openshift
Set up Open Data Hub on Code Ready Containers
Open Data Hub is a machine-learning-as-a-service platform built on OpenShift and Kafka/Strimzi. It integrates a collection of open source projects.
First, create an Ansible inventory file with the following content.
$ cat inventory
$ 127.0.0.1 ansible_connection=local
Set up the WORKLOAD environment variable so that Ansible Agnostic Deployer knows that we want to deploy Open Data Hub.
$ export WORKLOAD="ocp4-workload-open-data-hub"
$ sudo cp /usr/local/bin/ansible-playbook /usr/bin/ansible-playbook
We are only deploying one Open Data Hub project, so set user_count to 1. You can set up workshops for many students by setting user_count.
An OpenShift project (with Open Data Hub in our case) will be created for each student.
$ eval $(crc oc-env) && oc login -u kubeadmin -p <password> https://api.crc.testing:6443
$ ansible-playbook -i inventory ./configs/ocp-workloads/ocp-workload.yml -e"ocp_workload=${WORKLOAD}" -e"ACTION=create" -e"user_count=1" -e"ocp_username=kubeadmin" -e"ansible_become_pass=<password>" -e"silent=False"
$ oc project open-data-hub-user1
$ oc get route
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
jupyterhub jupyterhub-open-data-hub-user1.apps-crc.testing jupyterhub 8080-tcp edge/Redirect None
On your laptop, add jupyterhub-open-data-hub-user1.apps-crc.testing to your /etc/hosts file. For example:
127.0.0.1 localhost fedora30 console-openshift-console.apps-crc.testing oauth-openshift.apps-crc.testing mapit-app-management.apps-crc.testing mapit-spring-pipeline-demo.apps-crc.testing jupyterhub-open-data-hub-user1.apps-crc.testing jupyterhub-open-data-hub-user1.apps-crc.testing
On your laptop:
$ sudo ssh marc@fedora30 -L 443:jupyterhub-open-data-hub-user1.apps-crc.testing:443
You can now browse to https://jupyterhub-open-data-hub-user1.apps-crc.testing.
Now that we have Open Data Hub ready, you could deploy something interesting on it. For example, you could deploy IBM’s Qiskit open source framework for quantum computing. For more information, refer to Video no. 9 at this YouTube playlist, and the Github repo here.
You could also deploy plenty of other useful tools for Process Automation, Change Data Capture, Camel Integration, and 3scale API Management. You don’t have to wait for articles on these, though. Step-by-step short videos are already available on YouTube.
The corresponding step-by-step instructions are also on YouTube. You can also follow along with this article using the GitHub repo.
Photo by Marta Markes on Unsplash.
via: https://fedoramagazine.org/codeready-containers-complex-solutions-on-openshift-fedora/
作者:Marc Chisinevski 选题:lujun9972 译者:译者ID 校对:校对者ID