OpenShift - Konfiguracja środowiska
W tym rozdziale dowiemy się o konfiguracji środowiska OpenShift.
Wymagania systemowe
Aby skonfigurować Enterprise OpenShift, trzeba mieć aktywne konto Red Hat. Ponieważ OpenShift działa na architekturze master i node Kubernetes, musimy skonfigurować oba z nich na osobnych maszynach, w których jedna maszyna działa jako master, a druga działa w węźle. Aby skonfigurować oba, istnieją minimalne wymagania systemowe.
Konfiguracja maszyny głównej
Poniżej przedstawiono minimalne wymagania systemowe dotyczące konfiguracji maszyny głównej.
Maszyna podstawowa hostowana w środowisku fizycznym, wirtualnym lub w dowolnym środowisku chmury.
Co najmniej Linux 7 z wymaganymi pakietami w tej instancji.
2 rdzenie procesora.
Co najmniej 8 GB pamięci RAM.
30 GB wewnętrznej pamięci dysku twardego.
Konfiguracja maszyny węzłowej
- Fizyczny lub wirtualny obraz podstawowy, taki jak podany dla maszyny głównej.
- Co najmniej Linux 7 na komputerze.
- Docker zainstalowany w wersji nie niższej niż 1.6.
- 1 rdzeń procesora.
- 8 GB pamięci RAM.
- Dysk twardy 15 GB do przechowywania zdjęć i 15 GB do przechowywania obrazów.
Przewodnik krok po kroku do konfiguracji OpenShift
W poniższym opisie zamierzamy skonfigurować środowisko laboratoryjne OpenShift, które można później rozszerzyć na większy klaster. Ponieważ OpenShift wymaga konfiguracji głównej i węzła, potrzebowalibyśmy co najmniej dwóch maszyn hostowanych w chmurze, maszynach fizycznych lub maszynach wirtualnych.
Step 1- Najpierw zainstaluj Linuksa na obu maszynach, gdzie Linux 7 powinien być najmniej wersją. Można to zrobić za pomocą następujących poleceń, jeśli ktoś ma aktywną subskrypcję Red Hat.
# subscription-manager repos --disable = "*"
# subscription-manager repos --enable = "rhel-7-server-rpms"
# subscription-manager repos --enable = "rhel-7-server-extras-rpms"
# subscription-manager repos --enable = "rhel-7-server-optional-rpms"
# subscription-manager repos --enable = "rhel-7-server-ose-3.0-rpms"
# yum install wget git net-tools bind-utils iptables-services bridge-utils
# yum install wget git net-tools bind-utils iptables-services bridge-utils
# yum install python-virtualenv
# yum install gcc
# yum install httpd-tools
# yum install docker
# yum update
Po zainstalowaniu wszystkich powyższych pakietów podstawowych na obu maszynach następnym krokiem byłoby skonfigurowanie Dockera na odpowiednich komputerach.
Step 2- Skonfiguruj Dockera tak, aby zezwalał na niezabezpieczoną komunikację tylko w sieci lokalnej. W tym celu edytuj plik Docker w / etc / sysconfig. Jeśli pliku nie ma, musisz utworzyć go ręcznie.
# vi /etc/sysconfig/docker
OPTIONS = --selinux-enabled --insecure-registry 192.168.122.0/24
Po skonfigurowaniu Dockera na maszynie głównej, musimy ustawić komunikację bez hasła między oboma maszynami. W tym celu użyjemy uwierzytelnienia za pomocą klucza publicznego i prywatnego.
Step 3 - Wygeneruj klucze na maszynie głównej, a następnie skopiuj klucz id_rsa.pub do autoryzowanego pliku kluczy maszyny węzła, co można zrobić za pomocą następującego polecenia.
# ssh-keygen
# ssh-copy-id -i .ssh/id_rsa.pub [email protected]
Po wykonaniu wszystkich powyższych ustawień, następnym krokiem jest skonfigurowanie OpenShift w wersji 3 na maszynie głównej.
Step 4 - Na komputerze głównym uruchom następującą komendę curl.
# sh <(curl -s https://install.openshift.com/ose)
Powyższe polecenie umieści konfigurację dla OSV3. Następnym krokiem byłoby skonfigurowanie OpenShift V3 na komputerze.
Jeśli nie możesz pobrać bezpośrednio z Internetu, możesz to zrobić z https://install.openshift.com/portable/oo-install-ose.tgz jako pakiet tar, z którego instalator może działać na lokalnym komputerze głównym.
Gdy mamy już gotową konfigurację, musimy zacząć od faktycznej konfiguracji OSV3 na maszynach. Ta konfiguracja jest bardzo specyficzna, aby przetestować środowisko pod kątem rzeczywistej produkcji, mamy LDAP i inne rzeczy na miejscu.
Step 5 - Na komputerze głównym skonfiguruj następujący kod znajdujący się w /etc/openshift/master/master-config.yaml
# vi /etc/openshift/master/master-config.yaml
identityProviders:
- name: my_htpasswd_provider
challenge: true
login: true
provider:
apiVersion: v1
kind: HTPasswdPasswordIdentityProvider
file: /root/users.htpasswd
routingConfig:
subdomain: testing.com
Następnie utwórz standardowego użytkownika do domyślnej administracji.
# htpasswd -c /root/users.htpasswd admin
Step 6- Ponieważ OpenShift używa rejestru Docker do konfigurowania obrazów, musimy skonfigurować rejestr Docker. Służy do tworzenia i przechowywania obrazów platformy Docker po kompilacji.
Utwórz katalog na maszynie węzła OpenShift za pomocą następującego polecenia.
# mkdir /images
Następnie zaloguj się do maszyny głównej przy użyciu domyślnych poświadczeń administratora, które są tworzone podczas konfigurowania rejestru.
# oc login
Username: system:admin
Przełącz się do domyślnego utworzonego projektu.
# oc project default
Step 7 - Utwórz rejestr Docker.
#echo '{"kind":"ServiceAccount","apiVersion":"v1","metadata":{"name":"registry"}}' | oc create -f -
Edytuj uprawnienia użytkownika.
#oc edit scc privileged
users:
- system:serviceaccount:openshift-infra:build-controller
- system:serviceaccount:default:registry
Utwórz i edytuj rejestr obrazów.
#oadm registry --service-account = registry --
config = /etc/openshift/master/admin.kubeconfig --
credentials = /etc/openshift/master/openshift-registry.kubeconfig --
images = 'registry.access.redhat.com/openshift3/ose-${component}:${version}' --
mount-host = /images
Step 8 - Utwórz trasę domyślną.
Domyślnie OpenShift używa OpenVswitch jako sieci oprogramowania. Użyj następującego polecenia, aby utworzyć trasę domyślną. Służy do równoważenia obciążenia i routingu proxy. Router jest podobny do rejestru Dockera i działa również w rejestrze.
# echo '{"kind":"ServiceAccount","apiVersion":"v1","metadata":{"name":"router"}}' | oc create -f -
Następnie edytuj uprawnienia użytkownika.
#oc edit scc privileged
users:
- system:serviceaccount:openshift-infra:build-controller
- system:serviceaccount:default:registry
- system:serviceaccount:default:router
#oadm router router-1 --replicas = 1 --
credentials = '/etc/openshift/master/openshift-router.kubeconfig' --
images = 'registry.access.redhat.com/openshift3/ose-${component}:${version}'
Step 9 - Skonfiguruj DNS.
Aby obsłużyć żądanie adresu URL, OpenShift potrzebuje działającego środowiska DNS. Ta konfiguracja DNS jest wymagana do utworzenia symbolu wieloznacznego, który jest wymagany do utworzenia symbolu wieloznacznego DNS wskazującego router.
# yum install bind-utils bind
# systemctl start named
# systemctl enable named
vi /etc/named.conf
options {listen-on port 53 { 10.123.55.111; };
forwarders {
10.38.55.13;
;
};
zone "lab.com" IN {
type master;
file "/var/named/dynamic/test.com.zone";
allow-update { none; };
};
Step 10- Ostatnim krokiem byłoby skonfigurowanie serwera github na maszynie głównej OpenShift V3, co jest opcjonalne. Można to łatwo zrobić za pomocą następującej sekwencji poleceń.
#yum install curl openssh-server
#systemctl enable sshd
# systemctl start sshd
# firewall-cmd --permanent --add-service = http
# systemctl reload firewalld
#curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-
#yum install gitlab-ce
# gitlab-ctl reconfigure
Po zakończeniu powyższej konfiguracji możesz zweryfikować, testując i wdrażając aplikacje, o czym dowiemy się więcej w kolejnych rozdziałach.