<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Archives des Conteneurisation - CoffeeBreak Info</title>
	<atom:link href="https://coffeebreak.en-images.info/category/systeme-linux/redhat-centos-linux/systeme/conteneurisation/feed/" rel="self" type="application/rss+xml" />
	<link>https://coffeebreak.en-images.info/category/systeme-linux/redhat-centos-linux/systeme/conteneurisation/</link>
	<description>Une petite pause :)</description>
	<lastBuildDate>Tue, 22 Feb 2022 09:15:48 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://coffeebreak.en-images.info/wp-content/uploads/2021/07/cropped-Tasse_Cafe-scaled-1-32x32.jpg</url>
	<title>Archives des Conteneurisation - CoffeeBreak Info</title>
	<link>https://coffeebreak.en-images.info/category/systeme-linux/redhat-centos-linux/systeme/conteneurisation/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>MODOP – Installation Cluster HA K8S &#8211; KubeADM</title>
		<link>https://coffeebreak.en-images.info/modop-installation-cluster-ha-k8s-kubeadm/</link>
					<comments>https://coffeebreak.en-images.info/modop-installation-cluster-ha-k8s-kubeadm/#respond</comments>
		
		<dc:creator><![CDATA[chris]]></dc:creator>
		<pubDate>Mon, 21 Feb 2022 20:33:18 +0000</pubDate>
				<category><![CDATA[Conteneurisation]]></category>
		<category><![CDATA[OS Linux]]></category>
		<category><![CDATA[RedHat/Centos Linux]]></category>
		<category><![CDATA[Système]]></category>
		<category><![CDATA[Cluster]]></category>
		<category><![CDATA[Cluster HA]]></category>
		<category><![CDATA[K8S]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[RockyLinux]]></category>
		<category><![CDATA[Serveur]]></category>
		<guid isPermaLink="false">https://coffeebreak.en-images.info/?p=5789</guid>

					<description><![CDATA[<p>Nouveau petit MODOP sur la mise en place d'une infrastructure Haute disponibilité kubernetes. Le but est de créer des conteneurs d’applications scalable et très résilient sur des Clusters de serveurs HA et sans se soucier de la partie Système. La conteneurisation devient une technologie incontournable dans les modes de fonctionnement des devOPs, SysAdmin et cela en rendant les applications plus malléables. Cela permet le test, la recette, la migration et l’évolution des services/Applications très rapide via des briques applicatives modulable et interchangeable. Bref que du bonheur :)</p>
<p>L’article <a href="https://coffeebreak.en-images.info/modop-installation-cluster-ha-k8s-kubeadm/">MODOP – Installation Cluster HA K8S &#8211; KubeADM</a> est apparu en premier sur <a href="https://coffeebreak.en-images.info">CoffeeBreak Info</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p><strong>Le principe </strong></p>
<p><img fetchpriority="high" decoding="async" width="1440" height="844" class="wp-image-5790" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image.png 1440w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-300x176.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-1024x600.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-768x450.png 768w" sizes="(max-width: 1440px) 100vw, 1440px" /></p>
<h2><span style="color: #000000;"><strong>Les machines de l’infrastructure K8S</strong></span></h2>
<h4><span style="color: #000000;"><strong>Node Master</strong></span></h4>
<ul>
<li>node-K8s-vip : <strong>172.16.185.30</strong></li>
<li>node-K8s-vip : <strong>172.16.185.40</strong></li>
<li>node-k8s-m01 : <strong>172.16.185.31</strong></li>
<li>node-k8s-m02 : <strong>172.16.185.32</strong></li>
<li>node-k8s-m03 : <strong>172.16.185.33</strong></li>
</ul>
<h4><span style="color: #000000;"><strong>Node Worker</strong></span></h4>
<ul>
<li>node-k8s-w01 : <strong>172.16.185.34</strong></li>
<li>node-k8s-w02 : <strong>172.16.185.35</strong></li>
<li>node-k8s-w03 : <strong>172.16.185.36</strong></li>
<li>node-k8s-w04 : <strong>172.16.185.37</strong></li>
<li>node-k8s-w05 : <strong>172.16.185.38</strong></li>
<li>node-k8s-w06 : <strong>172.16.185.39</strong></li>
</ul>
<h4><strong><span style="color: #000000;">Client</span></strong></h4>
<ul>
<li>node-k8s-c01 : <strong>172.16.185.41</strong></li>
</ul>
<h3><span style="color: #000000;"><strong>Spécification des machines</strong></span></h3>
<ul>
<li>Système OS&nbsp;: <span style="color: #000000;"><strong>RockyLinux 8</strong></span></li>
<li>Mémoire&nbsp;: 2Go RAM</li>
<li>vCPU&nbsp;: 2</li>
<li>Disk&nbsp;: 20Go</li>
<li>vSwitch&nbsp;: vmbr1 (172.16.185.0/24)</li>
</ul>
<h3><span style="color: #000000;"><strong>Le Pool de machine</strong></span></h3>
<p><img decoding="async" width="1033" height="329" class="wp-image-5791" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-1.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-1.png 1033w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-1-300x96.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-1-1024x326.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-1-768x245.png 768w" sizes="(max-width: 1033px) 100vw, 1033px" /></p>
<h3><span style="color: #000000;"><strong>Intégrer les machines de l’infrastructure sur vos DNS</strong></span></h3>
<pre>[root@dns-pri ~]#<span style="color: #ff0000;"> vi /var/named/forward.house.cpb</span></pre>
<p>Ajouter à votre zone SOA du DNS</p>
<pre><em>; Infrastructure k8s</em>
<em>
; LoadBalancing KeepAlive k8s</em>
<span style="color: #ff0000;"><em>node-K8s-vip IN A 172.16.185.30</em></span>
<span style="color: #ff0000;"><em>node-K8s-vip IN A 172.16.185.40</em></span>

<em>; K8s Master</em>
<span style="color: #ff0000;"><em>node-K8s-m01 IN A 172.16.185.31</em></span>
<span style="color: #ff0000;"><em>node-K8s-m02 IN A 172.16.185.32</em></span>
<span style="color: #ff0000;"><em>node-K8s-m03 IN A 172.16.185.33</em></span>

<em>; K8s Worker</em>
<span style="color: #ff0000;"><em>node-K8s-w01 IN A 172.16.185.34</em></span>
<span style="color: #ff0000;"><em>node-K8s-w02 IN A 172.16.185.35</em></span>
<span style="color: #ff0000;"><em>node-K8s-w03 IN A 172.16.185.36</em></span>
<span style="color: #ff0000;"><em>node-K8s-w04 IN A 172.16.185.37</em></span>
<span style="color: #ff0000;"><em>node-K8s-w05 IN A 172.16.185.38</em></span>
<span style="color: #ff0000;"><em>node-K8s-w06 IN A 172.16.185.39</em></span></pre>
<pre>[root@dns-pri ~]#<span style="color: #ff0000;"> vi /var/named/reverse.house.cpb</span></pre>
<p>Ajouter à votre zone SOA du DNS Reverse</p>
<pre><em>; Infra K8s</em>

<em>; LoadBalancing KeepAlive</em>
<span style="color: #ff0000;"><em>30 IN PTR node-K8s-vip.house.cpb.</em></span>
<span style="color: #ff0000;"><em>40 IN PTR node-K8s-vip.house.cpb.</em></span>

<em>; K8s Master</em>
<span style="color: #ff0000;"><em>31 IN PTR node-K8s-m01.house.cpb.</em></span>
<span style="color: #ff0000;"><em>32 IN PTR node-K8s-m02.house.cpb.</em></span>
<em><span style="color: #ff0000;">33 IN PTR node-K8s-m03.house.cpb</span>.</em>

<em>; K8s Worker</em>
<span style="color: #ff0000;"><em>34 IN PTR node-K8s-w01.house.cpb.</em></span>
<span style="color: #ff0000;"><em>35 IN PTR node-K8s-w02.house.cpb.</em></span>
<span style="color: #ff0000;"><em>36 IN PTR node-K8s-w03.house.cpb.</em></span>
<span style="color: #ff0000;"><em>37 IN PTR node-K8s-w04.house.cpb.</em></span>
<span style="color: #ff0000;"><em>38 IN PTR node-K8s-w05.house.cpb.</em></span>
<span style="color: #ff0000;"><em>39 IN PTR node-K8s-w06.house.cpb.</em></span></pre>
<pre>[root@dns-pri ~]#<span style="color: #ff0000;"> systemctl reload named</span></pre>
<p>Petit Test de résolution sur le node01-k8s-m01</p>
<p><img decoding="async" width="865" height="427" class="wp-image-5792" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-2.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-2.png 865w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-2-300x148.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-2-768x379.png 768w" sizes="(max-width: 865px) 100vw, 865px" /></p>
<h1 style="text-align: center;"><span style="color: #000000;"><strong>&nbsp;Installation des machines « Master » </strong></span></h1>
<h3><span style="color: #000000;"><strong>Machine RockyLinux</strong></span></h3>
<ul>
<li>node-K8s-vip : <strong>172.16.185.30 (IP Virtuelle)</strong></li>
<li>node-K8s-vip : <strong>172.16.185.40 (IP Virtuelle)</strong></li>
<li>node-k8s-m01 : <strong>172.16.185.31</strong></li>
<li>node-k8s-m02 : <strong>172.16.185.32</strong></li>
<li>node-k8s-m03 : <strong>172.16.185.33</strong></li>
</ul>
<p>Installer 3 machines sur la configuration suivante</p>
<p><img loading="lazy" decoding="async" width="832" height="296" class="wp-image-5793" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-3.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-3.png 832w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-3-300x107.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-3-768x273.png 768w" sizes="auto, (max-width: 832px) 100vw, 832px" /></p>
<p>Pool k8s – Machines k8s-Master</p>
<p><img loading="lazy" decoding="async" width="942" height="179" class="wp-image-5794" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-4.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-4.png 942w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-4-300x57.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-4-768x146.png 768w" sizes="auto, (max-width: 942px) 100vw, 942px" /></p>
<h3><span style="color: #000000;"><strong>1°) Mise à jour RockyLinux 8 (3 master)</strong></span></h3>
<pre>[root@node-k8s-m0X ~]# <span style="color: #ff0000;">yum –y update &amp;&amp; yum upgrade –y</span></pre>
<h3><span style="color: #000000;"><strong>2°) Installation Package/Middleware (sur les 3 master)</strong></span></h3>
<pre>[root@node-k8s-m0X ~]# <span style="color: #ff0000;">yum install -y qemu-guest-agent wget chrony</span></pre>
<h3><span style="color: #000000;"><strong>3°) Désactiver le swap (3 master)</strong></span></h3>
<pre>[root@node-k8s-m0X ~]# <span style="color: #ff0000;">swapoff -a</span>
[root@node-k8s-m0X ~]# <span style="color: #ff0000;">sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab</span></pre>
<h3><span style="color: #000000;"><strong>4°) Changer les permissions SELinux (3 master)</strong></span></h3>
<pre>[root@node-k8s-m0X ~]# <span style="color: #ff0000;">setenforce 0</span>
[root@node-k8s-m0X ~]# <span style="color: #ff0000;">sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config</span></pre>
<h3><span style="color: #000000;"><strong>5°) Mise en place KeepAlive (3 master)</strong></span></h3>
<h4><span style="text-decoration: underline;"><span style="color: #000000; text-decoration: underline;"><strong>Installation KeepAlive (3 master)</strong></span></span></h4>
<pre>[root@node-k8s-m0X ~]# <span style="color: #ff0000;">yum install -y keepalived</span>
[root@node-k8s-m0X ~]# <span style="color: #ff0000;">groupadd -r keepalived_script</span>
[root@node-k8s-m0X ~]#<span style="color: #ff0000;"> useradd -r -s /sbin/nologin -g keepalived_script -M keepalived_script</span>
[root@node-k8s-m0X ~]# <span style="color: #ff0000;">cp /etc/keepalived/keepalived.conf{,-old}</span>
[root@node-k8s-m0X ~]# <span style="color: #ff0000;">sh -c '&gt; /etc/keepalived/keepalived.conf'</span></pre>
<h4><span style="text-decoration: underline; color: #000000;"><strong>Configurer KeepAlive – node-k8s-m01 &#8211; MASTER 01</strong></span></h4>
<pre>[root@<strong><span style="color: #ff0000;">node-k8s-m01</span></strong> ~]# <span style="color: #ff0000;">vi /etc/keepalived/keepalived.conf</span></pre>
<pre><em>! /etc/keepalived/keepalived.conf</em>
<em>! Configuration File for keepalived</em>

<em>global_defs {</em>
<em> notification_email {</em>
<em> chris@en-images.info</em>
<em> }</em>
<em> notification_email_from chris@en-images.info</em>
<em> smtp_server localhost</em>
<em> smtp_connect_timeout 30</em>

<em> }</em>

<em>vrrp_script check_server {</em>
<em> script "/etc/keepalived/check_server.sh"</em>
<em> interval 3</em>
<em> weight -2</em>
<em> fall 10</em>
<em> rise 2</em>

<em>}</em>

<em>vrrp_instance VI_1 {</em>
<span style="color: #ff0000;"><strong><em>state MASTER</em></strong></span>
<em> interface eth0</em>
<em> virtual_router_id 51</em>
<span style="color: #ff0000;"><strong><em> priority 100</em></strong></span>
<em> authentication {</em>
<span style="color: #ff0000;"><em> auth_type PASS</em></span>
<span style="color: #ff0000;"><em> auth_pass droopy2021</em></span>
<em> }</em>

<em> virtual_ipaddress {</em>
<strong><span style="color: #ff0000;"><em> 172.16.185.30/24</em></span></strong>
<strong><span style="color: #ff0000;"><em> 172.16.185.40/24</em></span></strong>
<em> }</em>

<em> track_script {</em>
<em> check_server</em>
<em> }</em>

<em>} </em></pre>
<h4><span style="text-decoration: underline;"><span style="color: #000000; text-decoration: underline;"><strong>Configurer KeepAlive – node-k8s-m02 &#8211; MASTER 02</strong></span></span></h4>
<pre>[root@<strong><span style="color: #ff0000;">node-k8s-m02</span></strong> ~]#<span style="color: #ff0000;"> vi /etc/keepalived/keepalived.conf</span></pre>
<pre>! /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
notification_email {
chris@en-images.info
}
notification_email_from chris@en-images.info
smtp_server localhost
smtp_connect_timeout 30
}

vrrp_script check_server {
script "/etc/keepalived/check_server.sh"
interval 3
weight -2
fall 10
rise 2
}

vrrp_instance VI_1 {
<span style="color: #ff0000;"><strong>state <em>BACKUP</em></strong></span>
interface eth0
virtual_router_id 51
<span style="color: #ff0000;"><strong> priority 99</strong></span>
authentication {
<span style="color: #ff0000;">auth_type PASS</span>
<span style="color: #ff0000;">auth_pass droopy2021</span>
}

virtual_ipaddress {
<span style="color: #ff0000;">172.16.185.30/24</span>
<span style="color: #ff0000;">172.16.185.40/24</span>
}

track_script {
check_server
}

}</pre>
<h4><span style="text-decoration: underline;"><span style="color: #000000; text-decoration: underline;"><strong>Configurer KeepAlive – node-k8s-m03 &#8211; MASTER 03</strong></span></span></h4>
<pre>[root@<strong><span style="color: #ff0000;">node-k8s-m03</span></strong> ~]# <span style="color: #ff0000;">vi /etc/keepalived/keepalived.conf</span></pre>
<pre><em>! /etc/keepalived/keepalived.conf</em>
<em>! Configuration File for keepalived</em>

<em>global_defs {</em>
<em> notification_email {</em>
<em> chris@en-images.info</em>
<em> }</em>
<em> notification_email_from chris@en-images.info</em>
<em> smtp_server localhost</em>
<em> smtp_connect_timeout 30</em>
<em> }</em>

<em>vrrp_script check_server {</em>
<em> script "/etc/keepalived/check_server.sh"</em>
<em> interval 3</em>
<em> weight -2</em>
<em> fall 10</em>
<em> rise 2</em>
<em>}</em>

<em>vrrp_instance VI_1 {</em>
<span style="color: #ff0000;"><strong><em> state BACKUP</em></strong></span>
<em> interface eth0</em>
<em> virtual_router_id 51</em>
<span style="color: #ff0000;"><strong><em>priority 98</em></strong></span>
<em> authentication {</em>
<span style="color: #ff0000;"><em> auth_type PASS</em></span>
<span style="color: #ff0000;"><em> auth_pass droopy2021</em></span>
<em> }</em>

<em> virtual_ipaddress {</em>
<span style="color: #ff0000;"><em> 172.16.185.30/24</em></span>
<span style="color: #ff0000;"><em> 172.16.185.40/24</em></span>
<em> }</em>

<em> track_script {</em>
<em> check_server</em>
<em> }</em>

<em>}</em></pre>
<h4><span style="color: #000000;"><strong>Script check_server.sh (3 master)</strong></span></h4>
<pre>[root@node-k8s-m0X ~]# <span style="color: #ff0000;">vi /etc/keepalived/check_server.sh</span></pre>
<pre><span style="color: #ff0000;"><em>#!/bin/sh</em></span>

<span style="color: #ff0000;"><em>APISERVER_VIP1=<strong>192.168.1.30</strong></em></span>
<span style="color: #ff0000;"><em>APISERVER_VIP2=<strong>192.168.1.40</strong></em></span>
<span style="color: #ff0000;"><em>APISERVER_DEST_PORT=<strong>6443</strong></em></span>

<span style="color: #ff0000;"><em>errorExit() {</em></span>
<span style="color: #ff0000;"><em> echo "*** $*" 1&gt;&amp;2</em></span>
<span style="color: #ff0000;"><em> exit 1</em></span>
<span style="color: #ff0000;"><em>}</em></span>

<span style="color: #ff0000;"><em>curl --silent --max-time 2 --insecure https://localhost:${APISERVER_DEST_PORT}/ -o /dev/null || errorExit "Error GET https://localhost:${APISERVER_DEST_PORT}/"</em></span>

<span style="color: #ff0000;"><em>if ip addr | grep -q ${APISERVER_VIP1}; then</em></span>
<span style="color: #ff0000;"><em> curl --silent --max-time 2 --insecure https://${APISERVER_VIP1}:${APISERVER_DEST_PORT}/ -o /dev/null || errorExit "Error GET https://${APISERVER_VIP1}:${APISERVER_DEST_PORT}/"</em></span>
<span style="color: #ff0000;"><em>fi</em></span>

<span style="color: #ff0000;"><em>if ip addr | grep -q ${APISERVER_VIP2}; then</em></span>
<span style="color: #ff0000;"><em> curl --silent --max-time 2 --insecure https://${APISERVER_VIP2}:${APISERVER_DEST_PORT}/ -o /dev/null || errorExit "Error GET https://${APISERVER_VIP2}:${APISERVER_DEST_PORT}/"</em></span>
<span style="color: #ff0000;"><em>fi</em></span></pre>
<pre>[root@node-k8s-m0X ~]# <span style="color: #ff0000;">chmod +x /etc/keepalived/check_server.sh</span></pre>
<h4><span style="color: #000000;"><strong>Suppression IPv6(3 master)</strong></span></h4>
<pre>[root@node-k8s-m0X ~]# <span style="color: #ff0000;">echo "net.ipv4.ip_nonlocal_bind = 1" &gt;&gt; /etc/sysctl.conf</span></pre>
<pre>[root@node-k8s-m01 ~]# <span style="color: #ff0000;"><strong>echo </strong>"<strong>net.ipv6.conf.all.disable_ipv6 = 1</strong>"<strong> &gt;&gt; /etc/sysctl.conf</strong> </span>
[root@node-k8s-m01 ~]# <span style="color: #ff0000;"><strong>echo </strong>"<strong>net.ipv6.conf.all.autoconf = 0</strong>"<strong> &gt;&gt; /etc/sysctl.conf</strong> </span>
[root@node-k8s-m01 ~]# <span style="color: #ff0000;"><strong>echo </strong>"<strong>net.ipv6.conf.default.disable_ipv6 = 1</strong>"<strong> &gt;&gt; /etc/sysctl.conf</strong> </span>
[root@node-k8s-m01 ~]# <span style="color: #ff0000;"><strong>echo </strong>"<strong>net.ipv6.conf.default.autoconf = 0</strong>"<strong> &gt;&gt; /etc/sysctl.conf</strong> </span>
[root@node-k8s-m01 ~]# <span style="color: #ff0000;"><strong>sysctl -p</strong></span></pre>
<h4><span style="color: #000000;"><strong>Rules pour KeepAlive (3 master)</strong></span></h4>
<pre>[root@node-k8s-m0X ~]# <span style="color: #ff0000;">firewall-cmd --add-rich-rule='rule protocol value="vrrp" accept' --permanent --zone=public</span>
[root@node-k8s-m0X ~]# <span style="color: #ff0000;">firewall-cmd --reload</span></pre>
<h4><span style="color: #000000;"><strong>Démarrer le service KeepAlive (3 master)</strong></span></h4>
<pre>[root@node-k8s-m0X ~]# <span style="color: #ff0000;">systemctl enable keepalived</span>
[root@node-k8s-m0X ~]# <span style="color: #ff0000;">systemctl start keepalived</span>
[root@node-k8s-m0X ~]# <span style="color: #ff0000;">systemctl status keepalived</span></pre>
<p><img loading="lazy" decoding="async" width="1005" height="341" class="wp-image-5795" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-5.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-5.png 1005w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-5-300x102.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-5-768x261.png 768w" sizes="auto, (max-width: 1005px) 100vw, 1005px" /></p>
<pre>[root@<strong><span style="color: #ff0000;">node-k8s-m01</span></strong> ~]# <span style="color: #ff0000;">ip a</span></pre>
<p><img loading="lazy" decoding="async" width="849" height="241" class="wp-image-5796" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-6.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-6.png 849w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-6-300x85.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-6-768x218.png 768w" sizes="auto, (max-width: 849px) 100vw, 849px" /></p>
<pre>[root@<span style="color: #ff0000;"><strong>node-k8s-m02</strong> </span>~]# <span style="color: #ff0000;">ip addr show eth0</span></pre>
<p><img loading="lazy" decoding="async" width="823" height="86" class="wp-image-5797" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-7.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-7.png 823w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-7-300x31.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-7-768x80.png 768w" sizes="auto, (max-width: 823px) 100vw, 823px" /></p>
<pre>[root@n<span style="color: #ff0000;"><strong>ode-k8s-m03</strong></span> ~]# <span style="color: #ff0000;">ip addr show eth0</span></pre>
<p><img loading="lazy" decoding="async" width="855" height="97" class="wp-image-5798" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-8.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-8.png 855w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-8-300x34.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-8-768x87.png 768w" sizes="auto, (max-width: 855px) 100vw, 855px" /></p>
<h3><span style="color: #000000;"><strong>Test Fonctionnel de KeepAlive </strong></span></h3>
<h4><span style="text-decoration: underline;"><span style="color: #000000; text-decoration: underline;"><strong>Machine node-K8s-m01 est down, la machine node-k8s-m02 prendra le relais.</strong></span></span></h4>
<pre>[root@<strong><span style="color: #ff0000;">node-k8s-m01</span></strong> ~]# <span style="color: #ff0000;">systemctl stop keepalived</span></pre>
<pre>[root@<strong><span style="color: #ff0000;">node-k8s-m02</span></strong> ~]# <span style="color: #ff0000;">ip addr show eth0</span></pre>
<p><img loading="lazy" decoding="async" width="844" height="155" class="wp-image-5799" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-9.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-9.png 844w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-9-300x55.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-9-768x141.png 768w" sizes="auto, (max-width: 844px) 100vw, 844px" /></p>
<h4><span style="text-decoration: underline; color: #000000;"><strong>Machine node-k8s-m01 et node-k8s-m02 est down, la machine node-k8s-m03 prendra le relais.</strong></span></h4>
<pre>[root@<strong><span style="color: #ff0000;">node-k8s-m01</span></strong> ~]# <span style="color: #ff0000;">systemctl stop keepalived</span></pre>
<pre>[root@<strong><span style="color: #ff0000;">node-k8s-m02</span></strong> ~]# <span style="color: #ff0000;">systemctl stop keepalived</span></pre>
<pre>[root@<span style="color: #ff0000;"><strong>node-k8s-m03</strong></span> ~]# <span style="color: #ff0000;">ip addr show eth0</span></pre>
<p><img loading="lazy" decoding="async" width="818" height="152" class="wp-image-5800" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-10.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-10.png 818w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-10-300x56.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-10-768x143.png 768w" sizes="auto, (max-width: 818px) 100vw, 818px" /></p>
<h4><span style="text-decoration: underline;"><span style="color: #000000; text-decoration: underline;"><strong>Machine node-K8s-m01 est UP, elle reprendra les IP Virtuelles.</strong></span></span></h4>
<pre>[root@<strong><span style="color: #ff0000;">node-k8s-m01</span></strong> ~]# <span style="color: #ff0000;">systemctl start keepalived</span>
[root@<strong><span style="color: #ff0000;">node-k8s-m01</span></strong> ~]# <span style="color: #ff0000;">ip addr show eth0</span></pre>
<p><img loading="lazy" decoding="async" width="816" height="156" class="wp-image-5801" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-11.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-11.png 816w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-11-300x57.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-11-768x147.png 768w" sizes="auto, (max-width: 816px) 100vw, 816px" /></p>
<h3><span style="color: #993300;"><strong><span style="color: #000000;">6°) Mise en place HaProxy (3 master)</span></strong></span></h3>
<pre>[root@node-k8s-m0X ~]# <span style="color: #ff0000;">yum -y install haproxy</span>
[root@node-k8s-m0X ~]# <span style="color: #ff0000;">cp /etc/haproxy/haproxy.cfg{,-old}</span>
[root@node-k8s-m0X ~]# <span style="color: #ff0000;">sh -c '&gt; /etc/haproxy/haproxy.cfg'</span></pre>
<pre>[root@node-k8s-m0X ~]# <span style="color: #ff0000;">vi /etc/haproxy/haproxy.cfg</span>

<span style="color: #ff0000;"><em>############################################</em></span>
<span style="color: #ff0000;"><em># Partie Global , Default et Site Managemnt</em></span>
<span style="color: #ff0000;"><em>#############################################</em></span>

<span style="color: #ff0000;"><em>global</em></span>
<span style="color: #ff0000;"><em> log 127.0.0.1 local2</em></span>
<span style="color: #ff0000;"><em> chroot /var/lib/haproxy</em></span>
<span style="color: #ff0000;"><em> pidfile /var/run/haproxy.pid</em></span>
<span style="color: #ff0000;"><em> maxconn 4000</em></span>
<span style="color: #ff0000;"><em> user haproxy</em></span>
<span style="color: #ff0000;"><em> group haproxy</em></span>
<span style="color: #ff0000;"><em> daemon</em></span>

<span style="color: #ff0000;"><em> #description HA Proxy sur l’infrastructure HA K8S Cluster</em></span>
<span style="color: #ff0000;"><em> stats socket /var/lib/haproxy/stats</em></span>
<span style="color: #ff0000;"><em>
defaults</em></span>
<span style="color: #ff0000;"><em> mode http</em></span>
<span style="color: #ff0000;"><em> log global</em></span>
<span style="color: #ff0000;"><em> option dontlognull</em></span>
<span style="color: #ff0000;"><em> option http-server-close</em></span>
<span style="color: #ff0000;"><em> option redispatch</em></span>
<span style="color: #ff0000;"><em> retries 3</em></span>
<span style="color: #ff0000;"><em> timeout http-request 10s</em></span>
<span style="color: #ff0000;"><em> timeout queue 1m</em></span>
<span style="color: #ff0000;"><em> timeout connect 10s</em></span>
<span style="color: #ff0000;"><em> timeout client 1m</em></span>
<span style="color: #ff0000;"><em> timeout server 1m</em></span>
<span style="color: #ff0000;"><em> timeout http-keep-alive 10s</em></span>
<span style="color: #ff0000;"><em> timeout check 10s</em></span>
<span style="color: #ff0000;"><em> maxconn 3000</em></span>

<span style="color: #ff0000;"><em>listen stats</em></span>
<span style="color: #ff0000;"><em> bind *:9000</em></span>
<span style="color: #ff0000;"><em> stats enable</em></span>
<span style="color: #ff0000;"><em> stats uri /status</em></span>
<span style="color: #ff0000;"><em> stats refresh 2s</em></span>
<span style="color: #ff0000;"><em> stats auth chris:Chris</em></span>
<span style="color: #ff0000;"><em> stats show-legends</em></span>
<span style="color: #ff0000;"><em> stats admin if TRUE</em></span>

<span style="color: #ff0000;"><em>###############################################</em></span>
<span style="color: #ff0000;"><em># Partie LoadBalancing , Répartiton de charge</em></span>
<span style="color: #ff0000;"><em>##############################################</em></span>

<span style="color: #ff0000;"><em>frontend apiserver</em></span>
<strong><span style="color: #ff0000;"><em> bind *:8443</em></span></strong>
<span style="color: #ff0000;"><em> mode tcp</em></span>
<span style="color: #ff0000;"><em> option tcplog</em></span>
<span style="color: #ff0000;"><em> default_backend apiserver</em></span>

<span style="color: #ff0000;"><em>backend apiserver</em></span>
<span style="color: #ff0000;"><em> option httpchk GET /healthz</em></span>
<span style="color: #ff0000;"><em> http-check expect status 200</em></span>
<span style="color: #ff0000;"><em> mode tcp</em></span>
<span style="color: #ff0000;"><em> option ssl-hello-chk</em></span>
<span style="color: #ff0000;"><em> balance roundrobin</em></span>
<strong><span style="color: #ff0000;"><em> server node-k8s-m01 172.16.185.31:6443 check</em></span></strong>
<strong><span style="color: #ff0000;"><em> server node-k8s-m02 172.16.185.32:6443 check</em></span></strong>
<strong><span style="color: #ff0000;"><em> server node-k8s-m03 172.16.185.33:6443 check</em></span></strong></pre>
<pre>[root@node-k8s-m0X ~]#<span style="color: #ff0000;"> haproxy -f /etc/haproxy/haproxy.cfg -c</span>
<span style="color: #ff0000;"><em>Configuration file is valid</em></span></pre>
<h3><span style="color: #000000;"><strong>Rules firewall (3 master)</strong></span></h3>
<pre>[root@node-k8s-m0X ~]# <span style="color: #ff0000;">firewall-cmd --add-port=9000/tcp --zone=public --permanent</span>
[root@node-k8s-m0X ~]# <span style="color: #ff0000;">firewall-cmd --reload</span></pre>
<h3><span style="color: #000000;"><strong>Démarrer le service HaProxy</strong></span></h3>
<pre>[root@node-k8s-m01 ~]#<span style="color: #ff0000;"> systemctl enable --now haproxy</span>
[root@node-k8s-m01 ~]# <span style="color: #ff0000;">systemctl status haproxy</span></pre>
<p><img loading="lazy" decoding="async" width="870" height="219" class="wp-image-5802" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-12.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-12.png 870w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-12-300x76.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-12-768x193.png 768w" sizes="auto, (max-width: 870px) 100vw, 870px" /></p>
<ul>
<li>L’accès à l’interface&nbsp;: <a href="http://node-k8s-vip.house.cpb:9000/status">http://node-k8s-vip.house.cpb:9000/status</a></li>
</ul>
<p><img loading="lazy" decoding="async" width="744" height="266" class="wp-image-5803" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-13.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-13.png 744w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-13-300x107.png 300w" sizes="auto, (max-width: 744px) 100vw, 744px" /></p>
<p>Login/password est celui défini dans le fichier de configuration haproxy.cfg</p>
<p><img loading="lazy" decoding="async" width="946" height="481" class="wp-image-5804" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-14.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-14.png 946w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-14-300x153.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-14-768x390.png 768w" sizes="auto, (max-width: 946px) 100vw, 946px" /></p>
<p>Pour le moment les machines du BackEnd «&nbsp;ApiServer&nbsp;» est DOWN car le service API de Kubernetes n’est pas encore installé.</p>
<h3><span style="color: #000000;"><strong>7°) Installation de Docker,</strong> <strong>Kubeadm, kubelet,kubectl (3 master)</strong></span></h3>
<h3><span style="color: #000000;"><strong>Installation Docker</strong></span></h3>
<pre>[root@node-k8s-m0X ~]# <span style="color: #ff0000;">yum install -y yum-utils</span>
[root@node-k8s-m0X ~]# <span style="color: #ff0000;">yum install -y iproute</span>
[root@node-k8s-m0X ~]# <span style="color: #ff0000;">yum-config-manager --add-repo <a style="color: #ff0000;" href="https://download.docker.com/linux/centos/docker-ce.repo">https://download.docker.com/linux/centos/docker-ce.repo</a></span>
<span style="color: #ff0000;"><em>Adding repo from: https://download.docker.com/linux/centos/docker-ce.repo</em></span>
[root@node-k8s-m0X ~]# <span style="color: #ff0000;">yum -y install docker-ce</span></pre>
<pre>[root@node-k8s-m0X ~]# <span style="color: #ff0000;">systemctl enable docker --now</span>
[root@node-k8s-m0X ~]# <span style="color: #ff0000;">docker -v</span>
<span style="color: #ff0000;"><em>Docker version 20.10.8, build 3967b7d</em></span></pre>
<h3><span style="color: #000000;"><strong>Installation Kubeadm, kubelet et kubectl</strong></span></h3>
<pre>[root@node-k8s-m0X ~]# <span style="color: #ff0000;">vi /etc/yum.repos.d/kubernetes.repo</span></pre>
<pre><span style="color: #ff0000;"><em>[kubernetes]</em></span>
<span style="color: #ff0000;"><em>name=Kubernetes</em></span>
<span style="color: #ff0000;"><em>baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64</em></span>
<span style="color: #ff0000;"><em>enabled=1</em></span>
<span style="color: #ff0000;"><em>gpgcheck=1</em></span>
<span style="color: #ff0000;"><em>repo_gpgcheck=1</em></span>
<span style="color: #ff0000;"><em>gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg</em></span>
<span style="color: #ff0000;"><em>exclude=kubelet kubeadm kubectl</em></span></pre>
<pre>[root@node-k8s-m0X ~]# <span style="color: #ff0000;">yum -y update</span>
[root@node-k8s-m0X ~]# <span style="color: #ff0000;">yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes</span></pre>
<h3><span style="color: #000000;"><strong>Modifier cgroupdriver pour Docker</strong></span></h3>
<pre>[root@node-k8s-m0X ~]# <span style="color: #ff0000;">docker info | grep -i cgroup</span>
<span style="color: #ff0000;"><em>Cgroup Driver: </em><strong><em>cgroupfs</em></strong></span>
<span style="color: #ff0000;"><em>Cgroup Version: 1</em></span></pre>
<pre>[root@node-k8s-m0X ~]# <span style="color: #ff0000;">vi /etc/sysconfig/kubelet</span>

<span style="color: #ff0000;"><em>KUBELET_EXTRA_ARGS=</em><strong><em>--cgroup-driver=cgroupfs</em></strong></span></pre>
<h3><span style="color: #000000;"><strong>Rules Firewall</strong></span></h3>
<pre>[root@node-k8s-m0X ~]# <span style="color: #ff0000;">firewall-cmd --permanent --add-port=6443/tcp</span>
[root@node-k8s-m0X ~]# <span style="color: #ff0000;">firewall-cmd --permanent --add-port=2379-2380/tcp</span>
[root@node-k8s-m0X ~]# <span style="color: #ff0000;">firewall-cmd --permanent --add-port={8443,10250,10251,10252,179}/tcp</span>
[root@node-k8s-m0X ~]# <span style="color: #ff0000;">firewall-cmd --add-port={4789,9099}/tcp --permanent</span>
[root@node-k8s-m0X ~]# <span style="color: #ff0000;">firewall-cmd --permanent --add-port=4789/udp</span>
[root@node-k8s-m0X ~]#<span style="color: #ff0000;"> firewall-cmd --add-masquerade --permanent</span>
[root@node-k8s-m01X ~]# <span style="color: #ff0000;">firewall-cmd --reload</span></pre>
<h3><span style="color: #000000;"><strong>Rules Réseaux</strong></span></h3>
<pre>[root@node-k8s-m01 ~]# <span style="color: #ff0000;">modprobe br_netfilter</span>
[root@node-k8s-m01 ~]# <span style="color: #ff0000;">echo "br_netfilter" &gt; /etc/modules-load.d/br_netfilter.conf</span>
[root@node-k8s-m01 ~]# s<span style="color: #ff0000;">h -c "echo '1' &gt; /proc/sys/net/bridge/bridge-nf-call-iptables"</span>
[root@node-k8s-m01 ~]# <span style="color: #ff0000;">sh -c "echo '1' &gt; /proc/sys/net/ipv4/ip_forward"</span>
[root@node-k8s-m01 ~]# <span style="color: #ff0000;">systemctl enable kubelet.service</span>
[root@node-k8s-m01 ~]# <span style="color: #ff0000;">systemctl restart firewalld</span></pre>
<h3><span style="color: #000000;"><strong>8°) Initialisation du cluster K8S </strong><strong>&nbsp;(3 master)</strong></span></h3>
<h3><span style="color: #000000;"><strong>Initialisation du Cluster (node-k8s-m01)</strong></span></h3>
<pre>[root@<strong><span style="color: #ff0000;">node-k8s-m01</span></strong> ~]# <span style="color: #ff0000;">kubeadm init --control-plane-endpoint <strong>node-k8s-vip:8443</strong> --upload-certs --pod-network-cidr=<strong>10.40.0.0/16</strong></span></pre>
<p><img loading="lazy" decoding="async" width="987" height="495" class="wp-image-5805" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-15.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-15.png 987w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-15-300x150.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-15-768x385.png 768w" sizes="auto, (max-width: 987px) 100vw, 987px" /></p>
<p><strong><span style="text-decoration: underline;">Copier les Clef dans un notepad</span> pour les masters et les Worker</strong></p>
<pre><span style="color: #ff0000;">kubeadm join <strong>node-k8s-vip:8443</strong> --token yu02zl.uinudjew3x8tps9h \</span>
<span style="color: #ff0000;">--discovery-token-ca-cert-hash sha256:035c2e4145b54d4235d8522d24ed9565ec81a2b7a169929a44ab51ba5e0ea816 \</span>
<span style="color: #ff0000;">--control-plane --certificate-key 5719b3e91ff1c759988e8fa0b1c59ff7ff005bed3c169c88528cf26325e2ca84</span>

Please note that the certificate-key gives access to cluster sensitive data, keep it secret!
As a safeguard, uploaded-certs will be deleted in two hours; If necessary, you can use
"kubeadm init phase upload-certs --upload-certs" to reload certs afterward.

Then you can join any number of worker nodes by running the following on each as root:

<span style="color: #ff0000;">kubeadm join <strong>node-k8s-vip:8443</strong> --token yu02zl.uinudjew3x8tps9h \</span>
<span style="color: #ff0000;">--discovery-token-ca-cert-hash sha256:035c2e4145b54d4235d8522d24ed9565ec81a2b7a169929a44ab51ba5e0ea816</span></pre>
<pre>[root@<strong><span style="color: #ff0000;">node-k8s-m01</span></strong> ~]# <span style="color: #ff0000;">mkdir -p $HOME/.kube</span>
[root@<strong><span style="color: #ff0000;">node-k8s-m01</span></strong> ~]# <span style="color: #ff0000;">cp -i /etc/kubernetes/admin.conf $HOME/.kube/config</span>
[root@<strong><span style="color: #ff0000;">node-k8s-m01</span></strong> ~]#<span style="color: #ff0000;"> chown $(id -u):$(id -g) $HOME/.kube/config</span>
[root@<strong><span style="color: #ff0000;">node-k8s-m01</span></strong> ~]# <span style="color: #ff0000;">curl https://docs.projectcalico.org/manifests/calico.yaml -O</span>
[root@<strong><span style="color: #ff0000;">node-k8s-m01</span></strong> ~]# <span style="color: #ff0000;">kubectl apply -f calico.yaml</span></pre>
<p><img loading="lazy" decoding="async" width="1024" height="443" class="wp-image-5806" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-16.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-16.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-16-300x130.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-16-768x332.png 768w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></p>
<pre>[root@<strong><span style="color: #ff0000;">node-k8s-m01</span></strong> ~]# <span style="color: #ff0000;">kubectl get nodes</span>
<span style="color: #ff0000;"><em>node-k8s-m01 Ready control-plane,master 27m v1.22.2</em></span></pre>
<h3><span style="color: #000000;"><strong>Ajouter le node-k8s-m02 au Cluster</strong></span></h3>
<pre>[root@<strong><span style="color: #ff0000;">node-k8s-m02</span></strong> ~]# <span style="color: #ff0000;">vi /etc/sysconfig/kubelet</span>
<span style="color: #ff0000;"><em>KUBELET_EXTRA_ARGS=--cgroup-driver=</em><strong><em>cgroupfs</em></strong></span></pre>
<pre>[root@<strong><span style="color: #ff0000;">node-k8s-m02</span></strong> ~]# <span style="color: #ff0000;">kubeadm join node-k8s-vip:8443 --token yu02zl.uinudjew3x8tps9h \</span>
<span style="color: #ff0000;">--discovery-token-ca-cert-hash sha256:035c2e4145b54d4235d8522d24ed9565ec81a2b7a169929a44ab51ba5e0ea816 \</span>
<span style="color: #ff0000;">--control-plane --certificate-key 5719b3e91ff1c759988e8fa0b1c59ff7ff005bed3c169c88528cf26325e2ca84</span></pre>
<pre>[root@<strong><span style="color: #ff0000;">node-k8s-m02</span></strong> ~]# <span style="color: #ff0000;">mkdir -p $HOME/.kube</span>
[root@<span style="color: #ff0000;"><strong>node-k8s-m02</strong></span> ~]# <span style="color: #ff0000;">cp -i /etc/kubernetes/admin.conf $HOME/.kube/config</span>
[root@<span style="color: #ff0000;"><strong>node-k8s-m02</strong></span> ~]# <span style="color: #ff0000;">chown $(id -u):$(id -g) $HOME/.kube/config</span>
</pre>
<pre>root@<span style="color: #ff0000;"><strong>node-k8s-m01</strong></span> ~]# <span style="color: #ff0000;">kubectl get nodes</span>
<span style="color: #ff0000;"><em>NAME STATUS ROLES AGE VERSION</em></span>
<span style="color: #ff0000;"><em>node-k8s-m01 Ready control-plane,master 176m v1.22.2</em></span>
<span style="color: #ff0000;"><strong><em>node-k8s-m02 Ready control-plane,master 137m v1.22.2</em></strong></span></pre>
<h3><span style="color: #000000;"><strong>Ajouter le node-k8s-m03 au Cluster</strong></span></h3>
<pre>[root@<strong><span style="color: #ff0000;">node-k8s-m03</span></strong> ~]# <span style="color: #ff0000;">vi /etc/sysconfig/kubelet</span>
<span style="color: #ff0000;"><em>KUBELET_EXTRA_ARGS=--cgroup-driver=</em><strong><em>cgroupfs</em></strong></span></pre>
<pre>[root@<span style="color: #ff0000;"><strong>node-k8s-m</strong>03</span> ~]# <span style="color: #ff0000;">kubeadm join <strong>node-k8s-vip:8443</strong> --token yu02zl.uinudjew3x8tps9h \</span>
<span style="color: #ff0000;">--discovery-token-ca-cert-hash sha256:035c2e4145b54d4235d8522d24ed9565ec81a2b7a169929a44ab51ba5e0ea816 \</span>
<span style="color: #ff0000;">--control-plane --certificate-key 5719b3e91ff1c759988e8fa0b1c59ff7ff005bed3c169c88528cf26325e2ca84</span></pre>
<pre>[root@<span style="color: #ff0000;"><strong>node-k8s-m03</strong></span> ~]# <span style="color: #ff0000;">mkdir -p $HOME/.kube</span>
[root@<span style="color: #ff0000;"><strong>node-k8s-m03</strong></span> ~]# <span style="color: #ff0000;">cp -i /etc/kubernetes/admin.conf $HOME/.kube/config</span>
[root@<span style="color: #ff0000;"><strong>node-k8s-m03</strong></span> ~]# <span style="color: #ff0000;">chown $(id -u):$(id -g) $HOME/.kube/config</span>
</pre>
<pre>[root@<strong><span style="color: #ff0000;">node-k8s-m01</span></strong> ~]#<span style="color: #ff0000;"> kubectl get nodes</span>
<span style="color: #ff0000;"><em>NAME STATUS ROLES AGE VERSION</em></span>
<span style="color: #ff0000;"><em>node-k8s-m01 Ready control-plane,master 45m v1.22.2</em></span>
<span style="color: #ff0000;"><em>node-k8s-m02 Ready control-plane,master 6m55s v1.22.2</em></span>
<span style="color: #ff0000;"><strong><em>node-k8s-m03 Ready control-plane,master 77s v1.22.2</em></strong></span></pre>
<pre>[root@node-k8s-m01 ~]# <span style="color: #ff0000;">kubectl get pods -n kube-system</span></pre>
<p><img loading="lazy" decoding="async" width="750" height="370" class="wp-image-5807" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-17.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-17.png 750w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-17-300x148.png 300w" sizes="auto, (max-width: 750px) 100vw, 750px" /></p>
<h1 style="text-align: center;"><span style="color: #000000;"><strong>Installation des machines «&nbsp;Worker» </strong></span></h1>
<h3><span style="color: #000000;"><strong>Machine RockyLinux</strong></span></h3>
<ul>
<li>node-k8s-w01 : <strong>172.16.185.34</strong></li>
<li>node-k8s-w02 : <strong>172.16.185.35</strong></li>
<li>node-k8s-w03 : <strong>172.16.185.36</strong></li>
<li>node-k8s-w04 : <strong>172.16.185.37</strong></li>
<li>node-k8s-w05 : <strong>172.16.185.38</strong></li>
<li>node-k8s-w06 : <strong>172.16.185.39</strong></li>
</ul>
<p>Installer 6 machines sur la configuration suivante</p>
<p><img loading="lazy" decoding="async" width="748" height="276" class="wp-image-5808" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-18.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-18.png 748w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-18-300x111.png 300w" sizes="auto, (max-width: 748px) 100vw, 748px" /></p>
<h3><span style="color: #000000;"><strong>Pool k8s – Machines k8s-worker</strong></span></h3>
<p><img loading="lazy" decoding="async" width="1011" height="307" class="wp-image-5809" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-19.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-19.png 1011w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-19-300x91.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-19-768x233.png 768w" sizes="auto, (max-width: 1011px) 100vw, 1011px" /></p>
<h3><span style="color: #000000;"><strong>1°) Mise à jour RockyLinux 8 (6 Worker)</strong></span></h3>
<pre>[root@node-k8s-w0X ~]# <span style="color: #ff0000;">yum -y update &amp;&amp; yum -y upgrade</span></pre>
<h3><span style="color: #000000;"><strong>2°) Installation Package/Middleware (6 Worker)</strong></span></h3>
<pre>[root@node-k8s-w0X ~]# <span style="color: #ff0000;">yum install -y qemu-guest-agent wget chrony</span></pre>
<h3><span style="color: #000000;"><strong>3°) Désactiver le swap (6 Worker)</strong></span></h3>
<pre>[root@node-k8s-w0X ~]#<span style="color: #ff0000;"> swapoff -a</span>
[root@node-k8s-w0X ~]# <span style="color: #ff0000;">sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab</span></pre>
<h3><span style="color: #000000;"><strong>4°) Changer les permissions SELinux (6 Worker)</strong></span></h3>
<pre>[root@node-k8s-w0X ~]# <span style="color: #ff0000;">setenforce 0</span>
[root@node-k8s-w0X ~]#<span style="color: #ff0000;"> sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config</span></pre>
<h3><span style="color: #000000;"><strong>5°) Installation Docker (6 Worker)</strong></span></h3>
<pre>[root@node-k8s-w0X ~]# <span style="color: #ff0000;">yum install -y yum-utils</span>
[root@node-k8s-w0X ~]# <span style="color: #ff0000;">yum install -y iproute</span></pre>
<pre>[root@node-k8s-w0X ~]# <span style="color: #ff0000;">yum-config-manager --add-repo <a style="color: #ff0000;" href="https://download.docker.com/linux/centos/docker-ce.repo">https://download.docker.com/linux/centos/docker-ce.repo</a></span>
<span style="color: #ff0000;"><em>Adding repo from: https://download.docker.com/linux/centos/docker-ce.repo</em></span>
[root@node-k8s-w0X ~]# <span style="color: #ff0000;">yum -y install docker-ce</span></pre>
<pre>[root@node-k8s-w0X ~]# <span style="color: #ff0000;">systemctl enable --now docker</span>
[root@node-k8s-w0X ~]# <span style="color: #ff0000;">docker -v</span>
<span style="color: #ff0000;"><em>Docker version 20.10.8, build 3967b7d</em></span></pre>
<h3><span style="color: #000000;"><strong>6°) Installation Kubeadm, kubelet et kubectl (6 Worker)</strong></span></h3>
<pre>[root@node-k8s-w0X ~]# vi /etc/yum.repos.d/kubernetes.repo</pre>
<pre><em><span style="color: #ff0000;">[kubernetes]</span></em>
<em><span style="color: #ff0000;">name=Kubernetes</span></em>
<em><span style="color: #ff0000;">baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64</span></em>
<em><span style="color: #ff0000;">enabled=1</span></em>
<em><span style="color: #ff0000;">gpgcheck=1</span></em>
<em><span style="color: #ff0000;">repo_gpgcheck=1</span></em>
<em><span style="color: #ff0000;">gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg</span></em>
<em><span style="color: #ff0000;">exclude=kubelet kubeadm kubectl</span></em></pre>
<pre>[root@node-k8s-m0X ~]# <span style="color: #ff0000;">yum -y update</span>
[root@node-k8s-m0X ~]# <span style="color: #ff0000;">yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes</span>
[root@node-k8s-w0X ~]#<span style="color: #ff0000;"> systemctl enable kubelet.service</span></pre>
<h3><span style="color: #000000;"><strong>7°) Rules Firewall(6 Worker)</strong></span></h3>
<pre>[root@node-k8s-w0X ~]# <span style="color: #ff0000;">firewall-cmd --permanent --add-port=30000-32767/tcp</span>
[root@node-k8s-w0X ~]# <span style="color: #ff0000;">firewall-cmd --permanent --add-port={10250,179}/tcp</span>
[root@node-k8s-w0X ~]# <span style="color: #ff0000;">firewall-cmd --permanent --add-port=4789/udp</span>
[root@node-k8s-w0X ~]# <span style="color: #ff0000;">firewall-cmd --add-port={4789,9099}/tcp –permanent</span>
[root@node-k8s-w0X ~]# <span style="color: #ff0000;">firewall-cmd --add-masquerade –permanent</span></pre>
<h3><span style="color: #000000;"><strong>8°) Rules Applicatifs (6 Worker)</strong></span></h3>
<pre>[root@node-k8s-w0X ~]#<span style="color: #ff0000;"> firewall-cmd --permanent --add-port=80/tcp</span>
[root@node-k8s-w0X ~]# <span style="color: #ff0000;">firewall-cmd --reload</span></pre>
<h3><span style="color: #000000;"><strong>9°) Ajout Règle Bridge pour le réseau Interne k8s(6 Worker)</strong></span></h3>
<pre>[root@node-k8s-w01 ~]# <span style="color: #ff0000;">modprobe br_netfilter</span>
[root@node-k8s-w01 ~]# <span style="color: #ff0000;">echo "net.ipv4.ip_nonlocal_bind = 1" &gt;&gt; /etc/sysctl.conf</span>
[root@node-k8s-w01 ~]# <span style="color: #ff0000;">echo "net.bridge.bridge-nf-call-ip6tables = 1" &gt;&gt; /etc/sysctl.conf</span>
[root@node-k8s-w01 ~]# <span style="color: #ff0000;">echo "net.bridge.bridge-nf-call-iptables = 1" &gt;&gt; /etc/sysctl.conf</span>
[root@node-k8s-w01 ~]# <span style="color: #ff0000;">sh -c "echo '1' &gt; /proc/sys/net/bridge/bridge-nf-call-iptables"</span>
[root@node-k8s-w01 ~]# <span style="color: #ff0000;">sh -c "echo '1' &gt; /proc/sys/net/ipv4/ip_forward"</span></pre>
<h3><span style="color: #000000;"><strong>10°) Suppression IPv6(6 Worker)</strong></span></h3>
<pre>[root@node-k8s-m01 ~]# <span style="color: #ff0000;"><strong>echo </strong>"<strong>net.ipv6.conf.all.disable_ipv6 = 1</strong>"<strong> &gt;&gt; /etc/sysctl.conf</strong></span>
[root@node-k8s-m01 ~]# <span style="color: #ff0000;"><strong>echo </strong>"<strong>net.ipv6.conf.all.autoconf = 0</strong>"<strong> &gt;&gt; /etc/sysctl.conf</strong></span>
[root@node-k8s-m01 ~]# <span style="color: #ff0000;"><strong>echo </strong>"<strong>net.ipv6.conf.default.disable_ipv6 = 1</strong>"<strong> &gt;&gt; /etc/sysctl.conf</strong></span>
[root@node-k8s-m01 ~]# <span style="color: #ff0000;"><strong>echo </strong>"<strong>net.ipv6.conf.default.autoconf = 0</strong>"<strong> &gt;&gt; /etc/sysctl.conf</strong></span>
[root@node-k8s-m01 ~]# <span style="color: #ff0000;"><strong>sysctl -p</strong></span></pre>
<h3><span style="color: #000000;"><strong>11°) Ajouter les node-k8s-w0x au Cluster(6 Worker)</strong></span></h3>
<pre>[root@node-k8s-w0X~]#<span style="color: #ff0000;"> vi /etc/sysconfig/kubelet</span>
<span style="color: #ff0000;"><em>KUBELET_EXTRA_ARGS=</em><strong><em>--cgroup-driver=cgroupfs</em></strong></span>
<span style="color: #ff0000;">[root@node-k8s-w01 ~]# kubeadm join node-k8s-vip:8443 --token yu02zl.uinudjew3x8tps9h \</span>
<span style="color: #ff0000;">--discovery-token-ca-cert-hash sha256:035c2e4145b54d4235d8522d24ed9565ec81a2b7a169929a44ab51ba5e0ea816</span></pre>
<p><img loading="lazy" decoding="async" width="1100" height="218" class="wp-image-5810" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-20.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-20.png 1100w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-20-300x59.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-20-1024x203.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-20-768x152.png 768w" sizes="auto, (max-width: 1100px) 100vw, 1100px" /></p>
<h3><span style="color: #000000;"><strong>Check des Worker sur le Cluster master01</strong></span></h3>
<pre>[root@<strong><span style="color: #ff0000;">node-k8s-m01</span></strong> ~]#<span style="color: #ff0000;"> kubectl get nodes</span></pre>
<p><img loading="lazy" decoding="async" width="553" height="186" class="wp-image-5811" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-21.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-21.png 553w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-21-300x101.png 300w" sizes="auto, (max-width: 553px) 100vw, 553px" /></p>
<pre>[root@<span style="color: #ff0000;"><strong>node-k8s-m01</strong></span> ~]# <span style="color: #ff0000;">kubectl get nodes -o wide</span></pre>
<p><img loading="lazy" decoding="async" width="1332" height="185" class="wp-image-5812" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-22.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-22.png 1332w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-22-300x42.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-22-1024x142.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-22-768x107.png 768w" sizes="auto, (max-width: 1332px) 100vw, 1332px" /></p>
<pre>[root@<span style="color: #ff0000;"><strong>node-k8s-m01</strong></span> ~]# <span style="color: #ff0000;">kubectl get all -A</span></pre>
<p><img loading="lazy" decoding="async" width="1268" height="786" class="wp-image-5813" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-23.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-23.png 1268w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-23-300x186.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-23-1024x635.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-23-768x476.png 768w" sizes="auto, (max-width: 1268px) 100vw, 1268px" /></p>
<h3><span style="color: #000000;"><strong>Côté HaProxy</strong></span></h3>
<p><img loading="lazy" decoding="async" width="911" height="515" class="wp-image-5814" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-24.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-24.png 911w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-24-300x170.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-24-768x434.png 768w" sizes="auto, (max-width: 911px) 100vw, 911px" /></p>
<h2 style="text-align: center;"><span style="color: #000000;"><strong>Installation d’un client « DevOP » pour les tests</strong></span></h2>
<h3><span style="color: #000000;"><strong>Machine RockyLinux</strong></span></h3>
<ul>
<li>node-k8s-c01 : <strong>172.16.185.41</strong></li>
</ul>
<h3><span style="color: #000000;"><strong>1°) Mise à jour RockyLinux 8 </strong></span></h3>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">yum -y update &amp;&amp; yum -y upgrade</span></pre>
<h3><span style="color: #000000;"><strong>2°) Installation Package/Middleware </strong></span></h3>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">yum install -y qemu-guest-agent wget chrony</span></pre>
<h3><span style="color: #000000;"><strong>3° ) Désactiver le swap </strong></span></h3>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">swapoff -a</span>
[root@node-k8s-c01 ~]# <span style="color: #ff0000;">sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab</span></pre>
<h3><span style="color: #000000;"><strong>4°) Changer les permissions SELinux </strong></span></h3>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">setenforce 0</span>
[root@node-k8s-c01 ~]# <span style="color: #ff0000;">sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config</span></pre>
<h3><span style="color: #000000;"><strong>5°) Installation kubectl </strong></span></h3>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">vi /etc/yum.repos.d/kubernetes.repo</span></pre>
<pre><span style="color: #ff0000;"><em>[kubernetes]</em></span>
<span style="color: #ff0000;"><em>name=Kubernetes</em></span>
<span style="color: #ff0000;"><em>baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64</em></span>
<span style="color: #ff0000;"><em>enabled=1</em></span>
<span style="color: #ff0000;"><em>gpgcheck=1</em></span>
<span style="color: #ff0000;"><em>repo_gpgcheck=1</em></span>
<span style="color: #ff0000;"><em>gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg</em></span>
<span style="color: #ff0000;"><em>exclude=kubelet kubeadm kubectl</em></span></pre>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">yum install -y kubectl --disableexcludes=kubernetes</span></pre>
<h3><span style="color: #000000;"><strong>6°) Transfert de la Conf Master du Cluster sur le client DEV</strong></span></h3>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">mkdir -p $HOME/.kube</span>
[root@node-k8s-c01 ~]# <span style="color: #ff0000;">scp root@node-k8s-m01:/etc/kubernetes/admin.conf $HOME/.kube/config</span>
[root@node-k8s-c01 ~]# <span style="color: #ff0000;">chown $(id -u):$(id -g) $HOME/.kube/config</span></pre>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">kubectl get nodes</span></pre>
<p><img loading="lazy" decoding="async" width="541" height="185" class="wp-image-5815" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-25.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-25.png 541w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-25-300x103.png 300w" sizes="auto, (max-width: 541px) 100vw, 541px" /></p>
<h3><span style="color: #000000;"><strong>7°) Déployer une image Apache via NodePort</strong></span></h3>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">kubectl create deployment <span style="color: #339966;"><strong>serv1</strong></span> --image=<span style="color: #339966;"><strong>httpd</strong></span></span>
<span style="color: #ff0000;"><em>deployment.apps/serv1 created</em></span></pre>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">kubectl get deployments.apps <span style="color: #339966;"><strong>serv1</strong></span></span>
<span style="color: #ff0000;"><em>NAME READY UP-TO-DATE AVAILABLE AGE</em></span>
<span style="color: #ff0000;"><strong><em>serv1 1/1 1 1 76s</em></strong></span></pre>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">kubectl get pods</span>
<span style="color: #ff0000;"><em>NAME READY STATUS RESTARTS AGE</em></span>
<span style="color: #ff0000;"><strong><em><span style="color: #339966;">serv1-f684bf4bf-lhthx</span> 1/1 Running 0 57s</em></strong></span></pre>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">kubectl get pods -o wide</span></pre>
<p><img loading="lazy" decoding="async" width="1054" height="84" class="wp-image-5816" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-26.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-26.png 1054w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-26-300x24.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-26-1024x82.png 1024w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-26-768x61.png 768w" sizes="auto, (max-width: 1054px) 100vw, 1054px" /></p>
<h3><span style="color: #000000;"><strong>8°) Ajout de réplica pour Augmenter la résilience du service Apache</strong></span></h3>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">kubectl scale deployment <span style="color: #339966;"><strong>serv1</strong></span> --replicas=<span style="color: #339966;"><strong>3</strong></span></span>
<span style="color: #ff0000;"><em><strong><span style="color: #339966;">deployment.apps/serv1</span></strong> scaled</em></span></pre>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">kubectl get pods</span></pre>
<p><img loading="lazy" decoding="async" width="484" height="106" class="wp-image-5817" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-27.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-27.png 484w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-27-300x66.png 300w" sizes="auto, (max-width: 484px) 100vw, 484px" /></p>
<pre>[root@node-k8s-c01 ~]#<span style="color: #ff0000;"> kubectl get deployments.apps <span style="color: #008000;"><strong>serv1</strong></span></span>
<span style="color: #ff0000;"><em>NAME READY UP-TO-DATE AVAILABLE AGE</em></span>
<span style="color: #ff0000;"><strong><em><span style="color: #008000;">serv1</span> 3/3 3 3 3m56s</em></strong></span></pre>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">kubectl get pods -o wide</span></pre>
<p><img loading="lazy" decoding="async" width="1014" height="104" class="wp-image-5818" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-28.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-28.png 1014w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-28-300x31.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-28-768x79.png 768w" sizes="auto, (max-width: 1014px) 100vw, 1014px" /></p>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">kubectl expose deployment <strong><span style="color: #008080;">serv1</span></strong> --name=<strong><span style="color: #008080;">serv1</span></strong> --type=NodePort --port=80 --target-port=80</span>
<span style="color: #ff0000;"><em>service/<span style="color: #008080;">serv1</span> exposed</em></span></pre>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">kubectl get svc</span> <span style="color: #008080;"><strong>serv1</strong></span></pre>
<p><img loading="lazy" decoding="async" width="563" height="73" class="wp-image-5819" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-29.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-29.png 563w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-29-300x39.png 300w" sizes="auto, (max-width: 563px) 100vw, 563px" /></p>
<h3><span style="color: #000000;"><strong>9°) Test d’accès au service serv1 via le LoadBalancing « node-k8s-vip »</strong></span></h3>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">curl http://node-k8s-vip:32335</span>
<span style="color: #ff0000;">&lt;html&gt;&lt;body&gt;&lt;h1&gt;It works!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;</span></pre>
<p><img loading="lazy" decoding="async" width="879" height="176" class="wp-image-5820" src="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-30.png" srcset="https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-30.png 879w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-30-300x60.png 300w, https://coffeebreak.en-images.info/wp-content/uploads/2022/02/word-image-30-768x154.png 768w" sizes="auto, (max-width: 879px) 100vw, 879px" /></p>
<h3><span style="color: #000000;"><strong>10°) Test d&rsquo;accès au service serv1 via les node « Master » et « Worker »</strong></span></h3>
<h4><span style="text-decoration: underline; color: #000000;"><strong>Sur les Masters&nbsp;</strong></span></h4>
<pre><span style="color: #000000;">[root@node-k8s-c01</span> ~]# <span style="color: #ff0000;">curl http://<strong>node-k8s-m01</strong>:32335</span>
<span style="color: #ff0000;"><em>&lt;html&gt;&lt;body&gt;&lt;h1&gt;It works!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;</em></span></pre>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">curl http://<strong>node-k8s-m02</strong>:32335</span>
<span style="color: #ff0000;"><em>&lt;html&gt;&lt;body&gt;&lt;h1&gt;It works!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;</em></span></pre>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">curl http://<strong>node-k8s-m03</strong>:32335</span>
<span style="color: #ff0000;"><em>&lt;html&gt;&lt;body&gt;&lt;h1&gt;It works!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;</em></span></pre>
<h4><span style="text-decoration: underline; color: #000000;">Sur les Workers&nbsp;</span></h4>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">curl http://<strong>node-k8s-w01</strong>:32335</span>
<span style="color: #ff0000;"><em>&lt;html&gt;&lt;body&gt;&lt;h1&gt;It works!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;</em></span></pre>
<pre>[root@node-k8s-c01 ~]#<span style="color: #ff0000;"> curl http://<strong>node-k8s-w02</strong>:32335</span>
<span style="color: #ff0000;"><em>&lt;html&gt;&lt;body&gt;&lt;h1&gt;It works!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;</em></span></pre>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">curl http://<strong>node-k8s-w03</strong>:32335</span>
<span style="color: #ff0000;"><em>&lt;html&gt;&lt;body&gt;&lt;h1&gt;It works!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;</em></span></pre>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">curl http://<strong>node-k8s-w04</strong>:32335</span>
<span style="color: #ff0000;"><em>&lt;html&gt;&lt;body&gt;&lt;h1&gt;It works!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;</em></span></pre>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">curl http://<strong>node-k8s-w05</strong>:32335</span>
<span style="color: #ff0000;"><em>&lt;html&gt;&lt;body&gt;&lt;h1&gt;It works!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;</em></span></pre>
<pre>[root@node-k8s-c01 ~]# <span style="color: #ff0000;">curl http://<strong>node-k8s-w06</strong>:32335</span>
<span style="color: #ff0000;"><em>&lt;html&gt;&lt;body&gt;&lt;h1&gt;It works!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;</em></span></pre>
<p><strong>Le service httpd est accessible via tous les workers , Master et IP Vip.</strong></p>
<p>Views: 12</p><p>L’article <a href="https://coffeebreak.en-images.info/modop-installation-cluster-ha-k8s-kubeadm/">MODOP – Installation Cluster HA K8S &#8211; KubeADM</a> est apparu en premier sur <a href="https://coffeebreak.en-images.info">CoffeeBreak Info</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://coffeebreak.en-images.info/modop-installation-cluster-ha-k8s-kubeadm/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
