OpenShift - Configurazione dell'ambiente
In questo capitolo impareremo la configurazione dell'ambiente di OpenShift.
Requisito del sistema
Per configurare OpenShift aziendale, è necessario disporre di un account Red Hat attivo. Dato che OpenShift funziona sull'architettura master e nodo di Kubernetes, dobbiamo configurarli entrambi su macchine separate, in cui una macchina funge da master e l'altra funziona sul nodo. Per configurare entrambi, ci sono requisiti minimi di sistema.
Configurazione macchina master
Di seguito sono riportati i requisiti minimi di sistema per la configurazione della macchina master.
Una macchina di base ospitata in un ambiente fisico, virtuale o in qualsiasi ambiente cloud.
Almeno Linux 7 con i pacchetti richiesti su quell'istanza.
2 core della CPU.
Almeno 8 GB di RAM.
30 GB di memoria interna del disco rigido.
Configurazione della macchina del nodo
- Immagine di base fisica o virtuale come data per la macchina master.
- Almeno Linux 7 sulla macchina.
- Docker installato con una versione non inferiore alla 1.6.
- 1 core della CPU.
- 8 GB di RAM.
- Disco rigido da 15 GB per l'hosting delle immagini e 15 GB per l'archiviazione delle immagini.
Guida passo passo alla configurazione di OpenShift
Nella seguente descrizione, configureremo l'ambiente di laboratorio OpenShift, che può essere successivamente esteso a un cluster più grande. Poiché OpenShift richiede la configurazione master e nodo, avremmo bisogno di almeno due macchine ospitate su macchine cloud, fisiche o virtuali.
Step 1- Prima installa Linux su entrambe le macchine, dove Linux 7 dovrebbe essere la versione meno recente. Questo può essere fatto usando i seguenti comandi se uno ha un abbonamento Red Hat attivo.
# 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
Una volta installati tutti i pacchetti di base di cui sopra su entrambe le macchine, il passaggio successivo sarebbe configurare Docker sulle rispettive macchine.
Step 2- Configurare Docker in modo che consenta comunicazioni non sicure solo sulla rete locale. Per questo, modifica il file Docker all'interno di / etc / sysconfig. Se il file non è presente, è necessario crearlo manualmente.
# vi /etc/sysconfig/docker
OPTIONS = --selinux-enabled --insecure-registry 192.168.122.0/24
Dopo aver configurato il Docker sulla macchina master, è necessario impostare una comunicazione senza password tra le due macchine. Per questo, useremo l'autenticazione con chiave pubblica e privata.
Step 3 - Genera le chiavi sulla macchina master e quindi copia la chiave id_rsa.pub nel file delle chiavi autorizzato della macchina del nodo, operazione che può essere eseguita utilizzando il seguente comando.
# ssh-keygen
# ssh-copy-id -i .ssh/id_rsa.pub [email protected]
Una volta che hai tutte le impostazioni di cui sopra in atto, il prossimo è impostare OpenShift versione 3 sulla macchina master.
Step 4 - Dalla macchina master, eseguire il seguente comando curl.
# sh <(curl -s https://install.openshift.com/ose)
Il comando precedente metterà in atto l'installazione per OSV3. Il prossimo passo sarebbe configurare OpenShift V3 sulla macchina.
Se non è possibile scaricare direttamente da Internet, è possibile scaricarlo da https://install.openshift.com/portable/oo-install-ose.tgz come pacchetto tar da cui il programma di installazione può essere eseguito sulla macchina master locale.
Una volta che abbiamo il setup pronto, dobbiamo iniziare con la configurazione effettiva di OSV3 sulle macchine. Questa configurazione è molto specifica per testare l'ambiente per la produzione effettiva, abbiamo LDAP e altre cose in atto.
Step 5 - Sulla macchina master, configura il seguente codice che si trova in /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
Successivamente, crea un utente standard per l'amministrazione predefinita.
# htpasswd -c /root/users.htpasswd admin
Step 6- Poiché OpenShift utilizza il registro Docker per configurare le immagini, è necessario configurare il registro Docker. Viene utilizzato per creare e archiviare le immagini Docker dopo la compilazione.
Crea una directory sulla macchina del nodo OpenShift utilizzando il seguente comando.
# mkdir /images
Successivamente, accedi alla macchina master utilizzando le credenziali di amministratore predefinite, che vengono create durante la configurazione del registro.
# oc login
Username: system:admin
Passa al progetto creato di default.
# oc project default
Step 7 - Crea un registro Docker.
#echo '{"kind":"ServiceAccount","apiVersion":"v1","metadata":{"name":"registry"}}' | oc create -f -
Modifica i privilegi utente.
#oc edit scc privileged
users:
- system:serviceaccount:openshift-infra:build-controller
- system:serviceaccount:default:registry
Crea e modifica il registro delle immagini.
#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 - Crea un percorso predefinito.
Per impostazione predefinita, OpenShift utilizza OpenVswitch come rete software. Utilizzare il seguente comando per creare un percorso predefinito. Viene utilizzato per il bilanciamento del carico e il routing proxy. Il router è simile al registro Docker e funziona anche in un registro.
# echo '{"kind":"ServiceAccount","apiVersion":"v1","metadata":{"name":"router"}}' | oc create -f -
Successivamente, modifica i privilegi dell'utente.
#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 - Configura il DNS.
Per gestire la richiesta URL, OpenShift necessita di un ambiente DNS funzionante. Questa configurazione DNS è necessaria per creare un carattere jolly, necessario per creare un carattere jolly DNS che punta a un 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- Il passaggio finale sarebbe configurare il server github sulla macchina master OpenShift V3, che è opzionale. Questo può essere fatto facilmente usando la seguente sequenza di comandi.
#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
Una volta completata la configurazione di cui sopra, è possibile verificare tramite test e distribuire le applicazioni, di cui sapremo di più nei capitoli successivi.