Ceci est une ancienne révision du document !
OpenShift Origin
Installation d'OpenShift Origin (version communautaire) sur CentOS 7.
Configuration des dépôts OpenShift
Pour installer les dépôts OpenShift :
yum install centos-release-openshift-origin
Installation du master
Pour installer le noeud master :
yum install origin-master
Installation des dépendances :
yum install wget git net-tools bind-utils iptables-services bridge-utils bash-completion origin-clients
Installation de docker :
yum install docker
Il faut onfigurer docker pour autoriser le dépôt docker (registry) local de OpenShift comme source d'images. Cela se fait dans le fichier /etc/sysconfig/docker en y ajoutant la ligne suivante :
INSECURE_REGISTRY='--insecure-registry 172.30.0.0/16'
Installation d'un node
Pour installer un noeud :
yum install origin-node
Installation cluster etcd
Pour installer etcd :
yum install etcd
Serveur DNS
C'est un pré-requis car l'accès aux services des containeurs repose sur l'utilisation d'un serveur DNS.
Installation du serveur DNS
Pour installer le serveur DNS :
yum install bind
<WRAP INFO>Il est peut-etre possible d'utiliser dnsmasq</WRAP>
Sur les master OpenShift un DNS existe déjà (SkyDNS), et sert pour résoudre les adresses des routeurs qui seront mis en place via OpenShift pour accèder aux services des containeurs. L'idée est donc de configurer le serveur DNS officiel du réseau (ici une VM avec bind) pour que la zone dédiée aux routeurs OpenShift pointe sur le SkyDNS.
Pour avoir les utilitaires comme dig :
yum install bind-utils
Configuration du serveur DNS
Création d'une zone pour nos tests (lab.in.noisy.linuxed.net), en ajoutant le bloc suivant dans /etc/named.rfc1912.zones :
zone "lab.in.noisy.linuxed.net" IN { type master; file "masters/lab.in.noisy.linuxed.net.zone.master"; allow-update { none; }; };
Création du répertoire masters :
mkdir -p /var/named/masters
Création du fichier de zone /var/named/masters/lab.in.noisy.linuxed.net.zone.master :
$TTL 604800 @ IN SOA lab.in.noisy.linuxed.net. admin.lab.in.noisy.linuxed.net. ( 1 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS ns.lab.in.noisy.linuxed.net. NS IN A 192.168.2.80 dns-0 IN A 192.168.2.80 master-0 IN A 192.168.2.97 master-1 IN A 192.168.2.98 master-2 IN A 192.168.2.99 etcd-0 IN A 192.168.2.50 etcd-1 IN A 192.168.2.52 etcd-2 IN A 192.168.2.54 node-0 IN A 192.168.2.76 node-1 IN A 192.168.2.77 nfs-0 IN A 192.168.2.89 lb-0 IN A 192.168.2.90
Vérification de la configuration :
named-checkconf -z /etc/named.conf
Activation et démarrage du service :
systemctl enable named systemctl start named
Pour tester une résolution :
dig @localhost NOM
Voilà.
Déploiement via ansible
Fichier hosts :
[OSEv3:children] masters nodes etcd lb [OSEv3:vars] ansible_ssh_user=root deployment_type=origin openshift_master_identity_providers=[{'name': 'htpasswd_auth','login': 'true', 'challenge': 'true','kind': 'HTPasswdPasswordIdentityProvider','filename': '/etc/origin/master/htpasswd'}] openshift_master_default_subdomain=apps.lab.in.noisy.linuxed.net openshift_metrics_install_metrics=true openshift_hosted_metrics_storage_kind=nfs openshift_hosted_metrics_storage_access_modes=['ReadWriteOnce'] openshift_hosted_metrics_storage_host=nfs.lab.in.noisy.linuxed.net openshift_hosted_metrics_storage_nfs_directory=/exports openshift_hosted_metrics_storage_volume_name=metrics openshift_hosted_metrics_storage_volume_size=10Gi openshift_master_cluster_method=native openshift_master_cluster_hostname=cluster.lab.in.noisy.linuxed.net openshift_master_cluster_public_hostname=cluster.lab.in.noisy.linuxed.net [lb] lb-0.lab.in.noisy.linuxed.net openshift_hostname=lb-0.lab.in.noisy.linuxed.net [masters] master-0.lab.in.noisy.linuxed.net openshift_hostname=master-0.lab.in.noisy.linuxed.net master-1.lab.in.noisy.linuxed.net openshift_hostname=master-1.lab.in.noisy.linuxed.net master-2.lab.in.noisy.linuxed.net openshift_hostname=master-2.lab.in.noisy.linuxed.net [nodes] node-0.lab.in.noisy.linuxed.net openshift_hostname=node-0.lab.in.noisy.linuxed.net openshift_node_labels="{'region': 'primary', 'zone': 'lab'}" node-1.lab.in.noisy.linuxed.net openshift_hostname=node-1.lab.in.noisy.linuxed.net openshift_node_labels="{'region': 'primary', 'zone': 'lab'}" master-0.lab.in.noisy.linuxed.net openshift_hostname=master-0.lab.in.noisy.linuxed.net openshift_node_labels="{'region': 'infra', 'zone': 'lab'}" openshift_schedulable=false master-1.lab.in.noisy.linuxed.net openshift_hostname=master-1.lab.in.noisy.linuxed.net openshift_node_labels="{'region': 'infra', 'zone': 'lab'}" openshift_schedulable=false master-2.lab.in.noisy.linuxed.net openshift_hostname=master-2.lab.in.noisy.linuxed.net openshift_node_labels="{'region': 'infra', 'zone': 'lab'}" openshift_schedulable=false [etcd] etcd-0.lab.in.noisy.linuxed.net openshift_hostname=etcd-0.lab.in.noisy.linuxed.net etcd-1.lab.in.noisy.linuxed.net openshift_hostname=etcd-1.lab.in.noisy.linuxed.net etcd-2.lab.in.noisy.linuxed.net openshift_hostname=etcd-2.lab.in.noisy.linuxed.net
Pour le déploiement :
ansible-playbook playbooks/byo/config.yml --inventory ~/archi