redhat:openshift-redhat:dailybusiness-openshift

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
redhat:openshift-redhat:dailybusiness-openshift [2019/02/14 15:27]
michael
redhat:openshift-redhat:dailybusiness-openshift [2020/12/10 13:07] (current)
michael
Line 1: Line 1:
 ====== Daily Business mit OpenShift ====== ====== Daily Business mit OpenShift ======
 +
  
  
Line 41: Line 42:
  
 <code># oc get rolebindings -n integration-service</code> <code># oc get rolebindings -n integration-service</code>
- 
  
 Link zur Dokumentation: [[https://docs.openshift.com/container-platform/3.3/admin_solutions/user_role_mgmt.html#adding-a-role-to-a-user]] Link zur Dokumentation: [[https://docs.openshift.com/container-platform/3.3/admin_solutions/user_role_mgmt.html#adding-a-role-to-a-user]]
 </WRAP> </WRAP>
  
----- 
- 
-===== Gluster PV Administration (obsolete, neu mit heketi) ===== 
  
 +===== Cluster Project Administration =====
  
 <WRAP center box 100%> <WRAP center box 100%>
-==== Gluster PVs erstellen (obsolete) ====+==== Set Timeout on OpenShift route ====
  
-Um ein neues PV zu erstellenmuss als erstes berücksichtig werdenob genügen Platz zur Verfügung steht.+Jenkins has some pageslike the system configuration or the plugin overviewthat take up to a minute for displayingWith the default settings on the OpenShift reverse proxy the request will be canceled after several seconds. You may set a new timeout on the route for your Jenkins instance to wait for the page to load:
  
-Folgender Ansible Befehl kann hierfür verwendet werden:+<code># oc annotate route <instance-name>-cing-helm --overwrite haproxy.router.openshift.io/timeout=60s</code>
  
-<code># ansible gluster -m shell -"vgs | grep vg_gluster"</code>+If minute is not enough to load the page feel free to set the value higher. 
 +</WRAP>
  
  
-Wenn genügend Platz zur Verfügung steht, muss das Hostfile der jeweiligen Plattform angepasst werden:+===== Cluster Administration =====
  
-<code># cd /root/openshift-hostfiles/ 
-# vim hosts_os***.yaml</code> 
  
-Anschliessend im Hostfile das neue PV am Ende des Abschnittes "gluster_pvs" einfügen: 
  
-<sxh yaml; gutter:false> 
-...  
-gluster_pvs: 
-        - name: gluster-pv1 
-          options: 
-            performance.write-behind-window-size: 32MB 
-          size: 100 
-        - name: gluster-pv2 
-          options: 
-            cluster.consistent-metadata: 'on' 
-            cluster.post-op-delay-secs: '0' 
-          size: 50 
-... 
-        - name: gluster-pv42 
-          size: 40 
-        - name: gluster-pv43 
-          size: 10 
-        - name: NEW GLUSTER PW 
-          size: NEW PV SIZE 
-... 
-</sxh> 
  
-Nun kann das Playbook main.yml im Verzeichnis /root/gluster-pvs/ im Check Modus ausgeführt werden. Damit kann überprüft werden, was das Playbook tatsächlich machen würde, ohne etwas zu ändern (dry run)+===== Cluster Debugging =====
  
-<code># cd /root/gluster-pvs/ 
-# ansible-playbook --check main.yml</code> 
  
 +<WRAP center box 100%>
 +==== Kube Config wiederherstellen ====
  
-Nachdem der Check durchgelaufen ist (mit Fehler, da die Änderungen nicht gemacht wurden und so das PV so nicht gefunden wurde) kann das Playbook ohne das --check ausgeführt werden+Funktioniert der ''oc get'' command nicht mehr korrekt, oder besser gesagt wird hier ein Passwort verlangt, so ist die Kube Config verschossen.. Ein gültiges Backup befindet sich hier''/etc/origin/master/admin.kubeconfig''
  
-<code># cd /root/gluster-pvs/ +<code># cp /etc/origin/master/admin.kubeconfig .kube/config</code>
-# ansible-playbook main.yml</code> +
- +
- +
-Zum Schluss muss noch überprüft werden, ob das PV tatsächlich angelegt wurde: +
- +
-<code># oc get pv | grep CREATED GLUSTER-PV</code>+
 </WRAP> </WRAP>
- 
  
  
 <WRAP center box 100%> <WRAP center box 100%>
-==== Gluster PVs vergrössern (obsolete) ====+==== Kube Config wiederherstellen ====
  
-An OpenShift GlusterFS PV can be online resizedincreased in sizeThis needs to be done on the OpenShift master node.+Funktioniert der ''oc get'' command nicht mehr korrektoder besser gesagt wird hier ein Passwort verlangt, so ist die Kube Config verschossen.Ein gültiges Backup befindet sich hier: ''/etc/origin/master/admin.kubeconfig''
  
-**These are the steps**:+<code># cp /etc/origin/master/admin.kubeconfig .kube/config</code> 
 +</WRAP>
  
-Edit the Ansible Inventory file and set the new size of the pv. Push the changes also to gitit.pnet.ch 
  
-<code># cd /root/openshift-hostfiles/ 
-# vim hosts_osit2.yaml</code> 
  
-<sxh yaml; gutter:false> 
-... 
-- name: gluster-pv118  
-size: 5 
-... 
-</sxh> 
- 
-<code># git status</code> 
- 
-<sxh bash; gutter:false> 
-# On branch master 
-# Changes not staged for commit: 
-#   (use "git add <file>..." to update what will be committed) 
-#   (use "git checkout -- <file>..." to discard changes in working directory) 
-# 
-#       modified:   hosts_osit2.yaml 
-# 
-no changes added to commit (use "git add" and/or "git commit -a") 
-</sxh> 
- 
-<code># git add hosts_osit2.yaml 
-# git commit -m "Resize pv118 to 5Gi" 
-# git push</code>  
- 
-Run /root/gluster-pvs/ansible-playbook --check main.yml. This is a dry run only to check what the changes will be 
- 
-<code># cd /root/gluster-pvs/ 
-ansible-playbook --check main.yml</code> 
- 
-After successful check run /root/gluster-pvs/ansible-playbook main.yml 
- 
-<code># cd /root/gluster-pvs/ 
-# ansible-playbook main.yml</code> 
- 
-Check the size of the gluster-pv on the local node. Should now show 1/3rd of the size in mounted position, because GlustrFS is replicated on the node instances. 
- 
-<code># df -h | grep gluster-pv118</code> 
- 
-Run ov edit pv <pv-name> to have the metadata of the pv volume in consistent state on the master node 
- 
-<code># oc edit pv gluster-pv118</code> 
-<sxh yaml; gutter:false;> 
-... 
-  capacity: 
-    storage: 5Gi 
-  claimRef: 
-... 
-</sxh> 
-<code># oc get pv | grep pv118</code> 
- 
- 
-<WRAP center round important 60%> 
-''**CAUTION**: Do not continue if there are errors to see in a step. If there are errors in the Task “[Configure Gluster management firewall rules]“, when running ansible-playbook --check main.yml, note that during container restart, there is a firewall reconfiguration ongoing, which may disturb running ansible-playbook. Try this check again some moments later.'' 
-</WRAP> 
- 
-</WRAP> 
  
 +===== Firmenspezifische Doku's =====
  
 <WRAP center box 100%> <WRAP center box 100%>
-==== Gluster PV's löschen (obsolete) ====+==== Ressourcen von einem Projekt wiederherstellen ====
  
-Auf dem ersten Master das PV unmounten: 
- 
-<code># umount /gluster/gluster-pvXX 
-# df | grep endpoint</code> 
- 
- 
-Das PV im OpenShift entfernen: 
- 
-<code># oc delete pv gluster-pvXX</code> 
- 
-Das gelöschte PV anschliessend auf einem Gluster Node Stopen und löschen: 
- 
-<code># gluster volume stop gluster-pvXX</code> <sxh bash; gutter:false> 
-Stopping volume will make its data inaccessible. Do you want to continue? (y/n) y 
-volume stop: gluster-pv11: success</sxh> 
- 
-<code># gluster volume delete gluster-pvXX</code> <sxh bash; gutter:false> 
-Deleting volume will erase all information about the volume. Do you want to continue? (y/n) y 
-volume delete: gluster-pv11: success</sxh> 
- 
-Zum schluss folgende Ansible Befehle auf dem Master ausführen: 
- 
-<code># ansible gluster -m lineinfile -a "path=/etc/fstab state=absent regexp='^/dev/vg_gluster/gluster-pv11' backup=yes" 
- 
-# ansible gluster -a "umount /dev/vg_gluster/gluster-pv11" 
- 
-# ansible gluster -a "wipefs -a /dev/vg_gluster/gluster-pv11"     #(2x ausführen zum checken) 
- 
-# ansible gluster -a "lvremove /dev/vg_gluster/gluster-pv11 -y"</code> 
-</WRAP> 
- 
----- 
- 
-===== Ressourcen von einem Projekt wiederherstellen ===== 
  
 Bei der Post läuft täglich um 24:00 ein cronjob, der alle wichtigen Projekt-Ressourcen täglich exportiert: Bei der Post läuft täglich um 24:00 ein cronjob, der alle wichtigen Projekt-Ressourcen täglich exportiert:
Line 298: Line 175:
  
 <code># oc create -f "Backup file in yaml" -n "namespace"</code> <code># oc create -f "Backup file in yaml" -n "namespace"</code>
 +</WRAP>
  
----- 
  
-===== Problem OpenShift GlusterFS (nicht mehr im HP OVO) ===== +<WRAP center box 100%
- +==== OpenShift Gluster Volume extend - over heketi ====
-Das Überwachungsskript(/root/openshift-script/check_gluster_volumes.sh) hat folgende E-Mail in die Mailbox SMSOPENSHIFTDL@post.ch gesendet. +
-Dieselbe Fehlermeldung wird auch im HP-OVO Monitoring angezeigt. +
- +
-Development Platform > DailyBusiness 1.png +
- +
- +
- +
-Auf dem Glusternode vekq7k wurde wegen eines anderen Fehler ein Neustart des Servers gemacht. Anschliessend konnte GlusterFS nicht vollständig gestartet werden. +
-Somit muss das GlusterFS auf auf dem gluster-pv101 forciert neu gestartet werden: +
- +
-[root@vekq7k ~]# gluster volume status gluster-pv101 +
-Status of volume: gluster-pv101 +
-Gluster process                             TCP Port  RDMA Port  Online  Pid +
------------------------------------------------------------------------------- +
-Brick vhmsgj.pnet.ch:/data/gluster-pv101/br +
-ick                                         49152              Y       6846 +
-Brick vkyg7l.pnet.ch:/data/gluster-pv101/br +
-ick                                         49152              Y       4553 +
-Brick vsytjw.pnet.ch:/data/gluster-pv101/br +
-ick                                         49152              Y       4939 +
-Brick vu32g5.pnet.ch:/data/gluster-pv101/br +
-ick                                         49152              Y       6774 +
-Brick vpva0p.pnet.ch:/data/gluster-pv101/br +
-ick                                         49152              Y       8864 +
-Brick vekq7k.pnet.ch:/data/gluster-pv101/br +
-ick                                         49202              Y       82665 +
-Brick vlf5eh.pnet.ch:/data/gluster-pv101/br +
-ick                                         49152              Y       103339 +
-Brick vw7w5k.pnet.ch:/data/gluster-pv101/br +
-ick                                         49152              Y       6902 +
-Brick v2o8fv.pnet.ch:/data/gluster-pv101/br +
-ick                                         49152              Y       3353 +
-Self-heal Daemon on localhost               N/      N/       Y       82687 +
-Self-heal Daemon on v2o8fv.pnet.ch          N/A       N/       Y       42526 +
-Self-heal Daemon on vs3tvs.pnet.ch          N/A       N/       Y       99276 +
-Self-heal Daemon on vw7w5k.pnet.ch          N/A       N/       Y       18084 +
-Self-heal Daemon on vsytjw.pnet.ch          N/A       N/       Y       4673 +
-Self-heal Daemon on vhmsgj.pnet.ch          N/A       N/       Y       31894 +
-Self-heal Daemon on vlf5eh.pnet.ch          N/A       N/       Y       22477 +
-Self-heal Daemon on vkyg7l.pnet.ch          N/A       N/       Y       57012 +
-Self-heal Daemon on vpva0p.pnet.ch          N/A       N/       Y       37754 +
-Self-heal Daemon on vu32g5.pnet.ch          N/A       N/       Y       85923 +
-Self-heal Daemon on vthbcn.pnet.ch          N/A       N/       Y       117650 +
- +
-Task Status of Volume gluster-pv101 +
------------------------------------------------------------------------------- +
-There are no active volume tasks +
- +
-[root@vekq7k ~]# gluster volume start gluster-pv101  force +
- +
----- +
- +
-===== Kube Config wiederherstellen ===== +
- +
-Funktioniert oc get "cmd" nicht mehr korrekt, wird ein Passwort verlangt, so ist die Kube Config "verschossen" ein gültiges Backup befindet sich hier: /etc/origin/master/admin.kubeconfig +
- +
-[root@vosm01 ~]# cp /etc/origin/master/admin.kubeconfig .kube/config +
- +
- +
- +
-===== Ansible Einrichtung auf OS Master Node ===== +
- +
-Damit mittels "ansible" Kommando von einem Master Node auf andere Nodes verbunden werden kann, braucht es folgende Einrichtungen +
- +
-Aktuelles Hosts Inventory File /etc/ansible/hosts (manuell) +
-SSH Private Key unter /root/.ssh/id_rsa (manuell) +
-Ansible SSH Prublic Key unter /etc/ssh/authorized_keys/ansible (wird mit Puppet verteilt) +
-[root@vosm01 ~]# ls -lsa /root/.ssh/ +
-total 16 +
-0 drwx------.  2 root root   39 Feb 28  2017 . +
-4 dr-xr-x---. 36 root root 4096 Aug 20 16:23 .. +
-4 -r--------.  1 root root 1680 Feb 28  2017 id_rsa +
-8 -rw-r--r--.  1 root root 4508 Sep 14  2017 known_hosts +
-[root@vosm01 ~]# ls -lsa /etc/ansible/hosts +
-0 lrwxrwxrwx. 1 root root 42 Mar  6 17:10 /etc/ansible/hosts -> /root/openshift-hostfiles/hosts_osit2.yaml +
-[root@vosm01 ~]# +
-[root@vosm01 ~]# ls -lsa /root/.ssh/ +
-total 16 +
-0 drwx------.  2 root root   39 Feb 28  2017 . +
-4 dr-xr-x---. 36 root root 4096 Aug 20 16:23 .. +
-4 -r--------.  1 root root 1680 Feb 28  2017 id_rsa +
-8 -rw-r--r--.  1 root root 4508 Sep 14  2017 known_hosts +
-[root@vosm01 ~]# +
-[root@vosm01 ~]# ls -lsa /etc/ssh/authorized_keys/ansible +
-4 -r--------. 1 ansible ansible 389 Jan 27  2017 /etc/ssh/authorized_keys/ansible +
-[root@vosm01 ~]# +
- +
----- +
- +
-===== OpenShift Gluster Volume extend - over heketi =====+
  
-Eine zusätzliche Terabyte Disk auf dem Gluster Cluster via Heketi einbinden: (siehe auch : https://access.redhat.com/solutions/3164841)+Eine zusätzliche Terabyte Disk auf dem Gluster Cluster via Heketi einbinden: (siehe auch : [[https://access.redhat.com/solutions/3164841]])
  
 Login auf dem OpenShift GUI, Project "glusterfs", Pod "heketi-storage". Login auf dem OpenShift GUI, Project "glusterfs", Pod "heketi-storage".
Line 406: Line 193:
 Auf der Heketi-Pod Konsole node und Cluster ID auslesen. Auf der Heketi-Pod Konsole node und Cluster ID auslesen.
  
 +<sxh plain; highlight: [1]; gutter: false;>
 sh-4.2# heketi-cli node list --user admin --secret p/J+OhZgDjwuMy/vZBoD74hP4CWmjWWE32ye6czr2aU= sh-4.2# heketi-cli node list --user admin --secret p/J+OhZgDjwuMy/vZBoD74hP4CWmjWWE32ye6czr2aU=
 Id:0680dabe91ee5a7f36da8cb6fe49cdd4 Cluster:7234de4476a10cb0d138e3fd3d387c40 Id:0680dabe91ee5a7f36da8cb6fe49cdd4 Cluster:7234de4476a10cb0d138e3fd3d387c40
 Id:648f2115e99bf41fb78271acd55bd8f9 Cluster:7234de4476a10cb0d138e3fd3d387c40 Id:648f2115e99bf41fb78271acd55bd8f9 Cluster:7234de4476a10cb0d138e3fd3d387c40
 Id:b016e52ee7378debc04427385f81cd82 Cluster:7234de4476a10cb0d138e3fd3d387c40 Id:b016e52ee7378debc04427385f81cd82 Cluster:7234de4476a10cb0d138e3fd3d387c40
 +</sxh>
  
 +Jetzt kann das neue Device nach dem Schema "''hecketi-cli device add --name /dev/DISK --node NODE_ID''" für jede Node-ID des Clusters auf der Pod-Konsole eingegeben werden.
  
-Jetzt kann das neue Device nach dem Schema "hecketi-cli device add --name /dev/DISK --node NODE_ID" für jede Node-ID des Clusters auf der Pod-Konsole eingegeben werden. +<sxh plain; highlight: [1,4,7]; gutter: false;>
- +
-  +
 sh-4.2# heketi-cli device add --name /dev/sdc --node 0680dabe91ee5a7f36da8cb6fe49cdd4 --user admin --secret p/J+OhZgDjwuMy/vZBoD74hP4CWmjWWE32ye6czr2aU= sh-4.2# heketi-cli device add --name /dev/sdc --node 0680dabe91ee5a7f36da8cb6fe49cdd4 --user admin --secret p/J+OhZgDjwuMy/vZBoD74hP4CWmjWWE32ye6czr2aU=
 Device added successfully Device added successfully
Line 424: Line 211:
 sh-4.2# heketi-cli device add --name /dev/sdc --node b016e52ee7378debc04427385f81cd82 --user admin --secret p/J+OhZgDjwuMy/vZBoD74hP4CWmjWWE32ye6czr2aU= sh-4.2# heketi-cli device add --name /dev/sdc --node b016e52ee7378debc04427385f81cd82 --user admin --secret p/J+OhZgDjwuMy/vZBoD74hP4CWmjWWE32ye6czr2aU=
 Device added successfully Device added successfully
 +</sxh>
  
 Als Resultat der Erweiterung, sieht man nun auf dem entsprechenden Node mit dem Kommando "pvscan" die von heketi neu bereitgestellte Volumegroup. Als Resultat der Erweiterung, sieht man nun auf dem entsprechenden Node mit dem Kommando "pvscan" die von heketi neu bereitgestellte Volumegroup.
  
 +<sxh plain; highlight: [1]; gutter: false;>
 [root@vosge1 ~]# pvscan [root@vosge1 ~]# pvscan
   PV /dev/sdc    VG vg_5e4ce3cca0b61f43f749d3cef0447e2e   lvm2 [999.87 GiB / <979.72 GiB free]   PV /dev/sdc    VG vg_5e4ce3cca0b61f43f749d3cef0447e2e   lvm2 [999.87 GiB / <979.72 GiB free]
Line 433: Line 221:
   PV /dev/sda2   VG vgsys                                 lvm2 [<79.47 GiB / 0    free]   PV /dev/sda2   VG vgsys                                 lvm2 [<79.47 GiB / 0    free]
   Total: 3 [2.03 TiB] / in use: 3 [2.03 TiB] / in no VG: 0 [0   ]   Total: 3 [2.03 TiB] / in use: 3 [2.03 TiB] / in no VG: 0 [0   ]
- +</sxh> 
----- +</WRAP>
- +
-===== Neue Host zum existierenden Cluster hinzufügen ===== +
- +
-Red Hat Anleitung: https://docs.openshift.com/container-platform/3.10/install_config/adding_hosts_to_existing_cluster.html +
- +
-Die neuen Hosts müssen in eine der folgenden beiden Firewall Gruppen, damit sie die nötigen Firewalls geschaltet bekommen (Je nach Plattform unterschiedliche FW-Rules): +
-WICHTIG: Wenn die Änderungen vorgenommen wurden, muss die Gruppe implementiert werden! +
- +
-Nonprod: IT-OShift-SharedNodeTest-M02A4-X +
-Prod: IT-OShift-SharedNodeProd-M02A4-X +
- +
-Mit folgendem Ansible Befehl kann überprüft werden, ob die FW Rules geschaltet wurden:  +
- +
-[rebermi@vosbh1]# ansible -i hosts_shared.yaml vosne5.pnet.ch,vosnz5.pnet.ch -m shell -a "date" +
- +
- +
-Bevor der neue Host dem Cluster hinzugefügt werden kann, muss dieser die nötigen OpenShift Pakete erhalten.  Hierzu muss das Package "atomic-openshift-utils" installiert werden.  +
-Jedoch wird dieses nur bis zur Version 3.9 gepflegt. Deshalb müssen zuerst unter /etc/yum.repos.d/ose.repo die 3.9 OpenShift Repos angehängt werden. Erst danach kann das Paket mit yum installiert werden:  +
- +
-[root@new_host]# vim /etc/yum.repos.d/ose.repo +
-[rhel-7-server-ose310-rpms] +
-baseurl = http://vinstp.pnet.ch/distributor/testing/rhel7-server-$basearch/ose/3.10 +
-enabled = 1 +
-gpgcheck = 1 +
-gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release +
-name = Red Hat OpenShift Container Platform 3.10 (RPMs) +
- +
-[rhel-7-server-ose39-rpms] +
-baseurl = http://vinstp.pnet.ch/distributor/testing/rhel7-server-$basearch/ose/3.9 +
-enabled = 1 +
-gpgcheck = 1 +
-gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release +
-name = Red Hat OpenShift Container Platform 3.9 (RPMs) +
- +
- +
-[root@new_host]# yum install atomic-openshift-utils -y +
-[root@new_host]# systemctl reboot +
- +
- +
-Der Host ist nun bereit. Jetzt muss das Hostfile angepasst werden (siehe <---): +
- +
-[rebermi@vosbh1]# vim openshift-hostfiles/hosts_shared.yml +
---- +
-all: +
-  children: +
-    OSEv3: +
-      children: +
-        bastion: {} +
-        glusterfs: {} +
-        glusterfs_registry: {} +
-        etcd: {} +
-        masters: {} +
-        nodes: +
-          children: +
-            masters: {} +
-            infra_nodes: {} +
-            user_nodes: {} +
-            new_nodes: {}  <--- +
-... +
-    user_nodes: +
-      hosts: +
-        EXISTING_HOSTS.pnet.ch: +
-          openshift_hostname: vosne1.pnet.ch +
-          openshift_ip: 172.18.184.14 +
-          openshift_node_group_name: node-config-compute-eh-prod +
-          openshift_node_local_quota_per_fsgroup: 1Gi +
-    new_nodes: <--- +
-      hosts: +
-        NEW_HOST.pnet.ch: +
-          openshift_hostname: NEW_HOST.pnet.ch +
-          openshift_ip: IP_ADRESS +
-          openshift_node_group_name: node-config-compute-eh-test +
-          openshift_node_local_quota_per_fsgroup: 1Gi +
- +
- +
-Zum Schluss muss nun das Scaleup Playbook von Red Hat ausgeführt: +
- +
-ansible-playbook [-i /path/to/file] /usr/share/ansible/openshift-ansible/playbooks/openshift-node/scaleup.yml +
- +
- +
-Damit auch Pods auf den neuen Cluster-Nodes erstellt werden können, muss man die LABELS der Nodes anpassen: +
- +
-[user@vosbh1 ~]$ oc login https://plattform.pnet.ch +
-[user@vosbh1 ~]$ oc get nodes --show-labels +
- +
-# Man kann jetzt die Labels eines funktionierenden Nodes kopieren und folgendermassen diesen labeln: +
- +
-[user@vosbh1 ~]$ oc label node NEWNODE compute=true +
-[user@vosbh1 ~]$ oc label node NEWNODE region=primary +
-[user@vosbh1 ~]$ oc label node NEWNODE stage=test +
-[user@vosbh1 ~]$ oc label node NEWNODE zone=defaul+
  
  
-Die Labels sollten je nach Node angepasst werden (EH/ZF , stage=test / stage=prod , usw.) 
  • redhat/openshift-redhat/dailybusiness-openshift.1550158059.txt.gz
  • Last modified: 2019/02/14 15:27
  • by michael