<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ro">
	<id>https://ro-wiki.ikoula.com/index.php?action=history&amp;feed=atom&amp;title=Implementarea_unui_cluster_Kubernetes</id>
	<title>Implementarea unui cluster Kubernetes - Revizia istoricului</title>
	<link rel="self" type="application/atom+xml" href="https://ro-wiki.ikoula.com/index.php?action=history&amp;feed=atom&amp;title=Implementarea_unui_cluster_Kubernetes"/>
	<link rel="alternate" type="text/html" href="https://ro-wiki.ikoula.com/index.php?title=Implementarea_unui_cluster_Kubernetes&amp;action=history"/>
	<updated>2026-11-10T07:49:39Z</updated>
	<subtitle>Istoricul versiunilor pentru această pagină din wiki</subtitle>
	<generator>MediaWiki 1.35.3</generator>
	<entry>
		<id>https://ro-wiki.ikoula.com/index.php?title=Implementarea_unui_cluster_Kubernetes&amp;diff=10496&amp;oldid=prev</id>
		<title>Cbrochot1072d la 28 octombrie 2021 14:36</title>
		<link rel="alternate" type="text/html" href="https://ro-wiki.ikoula.com/index.php?title=Implementarea_unui_cluster_Kubernetes&amp;diff=10496&amp;oldid=prev"/>
		<updated>2021-10-28T14:36:59Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left diff-editfont-monospace&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ro&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Versiunea anterioară&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Versiunea de la data 28 octombrie 2021 14:36&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l25&quot; &gt;Linia 25:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Linia 25:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Ce este Kubernetes?==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Ce este Kubernetes?==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Kubernetes''' este o platformă open-source pentru gestionarea sarcinilor de lucru și a serviciilor containerizate.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[https://www.ikoula.ro/ro/cloud-public/oneclick/kubernetes &lt;/ins&gt;Kubernetes&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;]&lt;/ins&gt;''' este o platformă open-source pentru gestionarea sarcinilor de lucru și a serviciilor containerizate.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Acesta suportă scrierea declarativă a configurației, dar și automatizarea. ''Kubernetes'' este un ecosistem mare și în creștere rapidă.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Acesta suportă scrierea declarativă a configurației, dar și automatizarea. ''Kubernetes'' este un ecosistem mare și în creștere rapidă.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Această procedură vă va permite să implementați rapid și ușor un cluster cu trei noduri. [https://www.ikoula.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;com&lt;/del&gt;/&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;fr&lt;/del&gt;/cloud-public/oneclick Kubernetes (k8s)] Această procedură vă va permite să implementați rapid și ușor un cluster cu trei noduri din trei instanțe CentOS 7 implementate în aceeași rețea într-o zonă de înaintare.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Această procedură vă va permite să implementați rapid și ușor un cluster cu trei noduri. [https://www.ikoula.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ro&lt;/ins&gt;/&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ro&lt;/ins&gt;/cloud-public/oneclick&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;/kubernetes &lt;/ins&gt;Kubernetes (k8s)] Această procedură vă va permite să implementați rapid și ușor un cluster cu trei noduri din trei instanțe CentOS 7 implementate în aceeași rețea într-o zonă de înaintare.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt; &lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Cbrochot1072d</name></author>
	</entry>
	<entry>
		<id>https://ro-wiki.ikoula.com/index.php?title=Implementarea_unui_cluster_Kubernetes&amp;diff=10459&amp;oldid=prev</id>
		<title>Ikbot: Pagină nouă: &lt;span data-link_translate_fr_title=&quot;Deployer un cluster Kubernetes&quot;  data-link_translate_fr_url=&quot;Deployer un cluster Kubernetes&quot;&gt;&lt;/span&gt;:fr:Deployer un cluster Kubernetesfr:D...</title>
		<link rel="alternate" type="text/html" href="https://ro-wiki.ikoula.com/index.php?title=Implementarea_unui_cluster_Kubernetes&amp;diff=10459&amp;oldid=prev"/>
		<updated>2021-07-29T14:01:56Z</updated>

		<summary type="html">&lt;p&gt;Pagină nouă: &amp;lt;span data-link_translate_fr_title=&amp;quot;Deployer un cluster Kubernetes&amp;quot;  data-link_translate_fr_url=&amp;quot;Deployer un cluster Kubernetes&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;a href=&quot;https://fr-wiki.ikoula.com/fr/Deployer_un_cluster_Kubernetes&quot; class=&quot;extiw&quot; title=&quot;fr:Deployer un cluster Kubernetes&quot;&gt;fr:Deployer un cluster Kubernetesfr&lt;/a&gt;:D...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pagină nouă&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;span data-link_translate_fr_title=&amp;quot;Deployer un cluster Kubernetes&amp;quot;  data-link_translate_fr_url=&amp;quot;Deployer un cluster Kubernetes&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[:fr:Deployer un cluster Kubernetes]][[fr:Deployer un cluster Kubernetes]]&lt;br /&gt;
&amp;lt;br /&amp;gt;Acest articol este rezultatul unei traduceri automate efectuate de către software-ul. Puteți vizualiza sursa articol [[:fr:Array|aici]].&amp;lt;br /&amp;gt;&amp;lt;span data-translate=&amp;quot;fr&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;
&amp;lt;span data-link_translate_ru_title=&amp;quot;Развертывание кластера Kubernetes&amp;quot;  data-link_translate_ru_url=&amp;quot;Развертывание кластера Kubernetes&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[:ru:Развертывание кластера Kubernetes]][[ru:Развертывание кластера Kubernetes]]&lt;br /&gt;
&amp;lt;span data-link_translate_pl_title=&amp;quot;Wdrażanie klastra Kubernetes&amp;quot;  data-link_translate_pl_url=&amp;quot;Wdrażanie klastra Kubernetes&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[:pl:Wdrażanie klastra Kubernetes]][[pl:Wdrażanie klastra Kubernetes]]&lt;br /&gt;
&amp;lt;span data-link_translate_ja_title=&amp;quot;Kubernetesクラスタのデプロイ&amp;quot;  data-link_translate_ja_url=&amp;quot;Kubernetesクラスタのデプロイ&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[:ja:Kubernetesクラスタのデプロイ]][[ja:Kubernetesクラスタのデプロイ]]&lt;br /&gt;
&amp;lt;span data-link_translate_zh_title=&amp;quot;部署一个Kubernetes集群&amp;quot;  data-link_translate_zh_url=&amp;quot;部署一个Kubernetes集群&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[:zh:部署一个Kubernetes集群]][[zh:部署一个Kubernetes集群]]&lt;br /&gt;
&amp;lt;span data-link_translate_de_title=&amp;quot;Bereitstellen eines Kubernetes-Clusters&amp;quot;  data-link_translate_de_url=&amp;quot;Bereitstellen eines Kubernetes-Clusters&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[:de:Bereitstellen eines Kubernetes-Clusters]][[de:Bereitstellen eines Kubernetes-Clusters]]&lt;br /&gt;
&amp;lt;span data-link_translate_nl_title=&amp;quot;Een Kubernetes cluster implementeren&amp;quot;  data-link_translate_nl_url=&amp;quot;Een Kubernetes cluster implementeren&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[:nl:Een Kubernetes cluster implementeren]][[nl:Een Kubernetes cluster implementeren]]&lt;br /&gt;
&amp;lt;span data-link_translate_pt_title=&amp;quot;Implantação de um aglomerado Kubernetes&amp;quot;  data-link_translate_pt_url=&amp;quot;Implantação de um aglomerado Kubernetes&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[:pt:Implantação de um aglomerado Kubernetes]][[pt:Implantação de um aglomerado Kubernetes]]&lt;br /&gt;
&amp;lt;span data-link_translate_es_title=&amp;quot;Despliegue de un clúster Kubernetes&amp;quot;  data-link_translate_es_url=&amp;quot;Despliegue de un clúster Kubernetes&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[:es:Despliegue de un clúster Kubernetes]][[es:Despliegue de un clúster Kubernetes]]&lt;br /&gt;
&amp;lt;span data-link_translate_en_title=&amp;quot;Deploying a Kubernetes cluster&amp;quot;  data-link_translate_en_url=&amp;quot;Deploying a Kubernetes cluster&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[:en:Deploying a Kubernetes cluster]][[en:Deploying a Kubernetes cluster]]&lt;br /&gt;
&amp;lt;span data-link_translate_it_title=&amp;quot;Configurare un cluster Kubernetes&amp;quot;  data-link_translate_it_url=&amp;quot;Configurare un cluster Kubernetes&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[:it:Configurare un cluster Kubernetes]][[it:Configurare un cluster Kubernetes]]&lt;br /&gt;
&amp;lt;span data-link_translate_fr_title=&amp;quot;Deployer un cluster Kubernetes&amp;quot;  data-link_translate_fr_url=&amp;quot;Deployer un cluster Kubernetes&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;[[:fr:Deployer un cluster Kubernetes]][[fr:Deployer un cluster Kubernetes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title=Instalarea kubernetes&lt;br /&gt;
|titlemode=replace&lt;br /&gt;
|keywords=ikoula wiki, ikoula wiki, ikoula knowledge base, kubernetes este ce, kubernetes instalare, kubernetes tutorial&lt;br /&gt;
|description=Kubernetes poate fi considerat ca fiind: o platformă de containere, o platformă de microservicii, o platformă cloud portabilă și multe altele...Aflați cum se instalează.&lt;br /&gt;
|og:type=article&lt;br /&gt;
|og:image=https://fr-wiki.ikoula.com/resources/assets/logo_ikwiki.png&lt;br /&gt;
}} &lt;br /&gt;
&lt;br /&gt;
==Ce este Kubernetes?==&lt;br /&gt;
&lt;br /&gt;
'''Kubernetes''' este o platformă open-source pentru gestionarea sarcinilor de lucru și a serviciilor containerizate.&lt;br /&gt;
Acesta suportă scrierea declarativă a configurației, dar și automatizarea. ''Kubernetes'' este un ecosistem mare și în creștere rapidă.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Această procedură vă va permite să implementați rapid și ușor un cluster cu trei noduri. [https://www.ikoula.com/fr/cloud-public/oneclick Kubernetes (k8s)] Această procedură vă va permite să implementați rapid și ușor un cluster cu trei noduri din trei instanțe CentOS 7 implementate în aceeași rețea într-o zonă de înaintare.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Una dintre aceste trei instanțe va fi nodul nostru principal, iar celelalte două vor fi nodurile noastre de lucru. Pe scurt, nodul maestru este nodul de la care gestionăm clusterul Kubernetes (orchestratorul de containere) din API-ul său, iar nodurile de lucru sunt nodurile pe care vor rula podurile sau containerele (Docker în cazul nostru). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Vom presupune că cele 3 instanțe CentOS 7 sunt deja implementate și că aveți acces ssh la ele pentru a executa comenzile care vor urma.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Iată configurația pe care o avem în exemplul nostru și care va fi folosită ca exemplu pe parcursul acestei proceduri:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nod master: &amp;quot;k8s-master&amp;quot; / 10.1.1.1.16&amp;lt;br&amp;gt;&lt;br /&gt;
Primul nod lucrător: &amp;quot;k8s-worker01&amp;quot; / 10.1.1.169&amp;lt;br&amp;gt;&lt;br /&gt;
Al doilea nod lucrător: &amp;quot;k8s-worker02&amp;quot; / 10.1.1.1.87&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Tutorial de pregătire a sistemului și instalare Kubernetes ==&lt;br /&gt;
&lt;br /&gt;
Următoarele acțiuni trebuie să fie efectuate pe toate instanțele (master și workers) ca root (sau cu drepturile sudo necesare).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Începeți prin completarea fișierului /etc/hosts pe fiecare dintre instanțele dvs., astfel încât acestea să poată rezolva numele de gazdă respectiv (în mod normal, acest lucru se întâmplă deja într-o rețea cu zonă avansată în care routerul virtual este un rezolvator DNS). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
În exemplul nostru, acest lucru dă următorul fișier /etc/hosts pe cele trei instanțe (adaptați-l cu numele și ip-ul instanțelor dvs.):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat /etc/hosts&lt;br /&gt;
127.0.0.1   localhost&lt;br /&gt;
::1         localhost&lt;br /&gt;
&lt;br /&gt;
10.1.1.16 k8s-master&lt;br /&gt;
10.1.1.169 k8s-worker01&lt;br /&gt;
10.1.1.87 k8s-worker02&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Activați modulul bridge și regulile iptables pentru acesta cu următoarele trei comenzi:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
modprobe bridge&lt;br /&gt;
echo &amp;quot;net.bridge.bridge-nf-call-iptables = 1&amp;quot; &amp;gt;&amp;gt; /etc/sysctl.conf&lt;br /&gt;
sysctl -p /etc/sysctl.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Adăugați depozitul YUM Docker :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/yum.repos.d/docker.repo&lt;br /&gt;
[docker-ce-stable]&lt;br /&gt;
name=Docker CE Stable - \$basearch&lt;br /&gt;
baseurl=https://download.docker.com/linux/centos/7/\$basearch/stable&lt;br /&gt;
enabled=1&lt;br /&gt;
gpgcheck=1&lt;br /&gt;
gpgkey=https://download.docker.com/linux/centos/gpg&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Adăugați depozitul YUM Kubernetes : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cat &amp;lt;&amp;lt;EOF &amp;gt; /etc/yum.repos.d/kubernetes.repo&lt;br /&gt;
[kubernetes]&lt;br /&gt;
name=Kubernetes&lt;br /&gt;
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64&lt;br /&gt;
enabled=1&lt;br /&gt;
gpgcheck=1&lt;br /&gt;
repo_gpgcheck=1&lt;br /&gt;
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg&lt;br /&gt;
        https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Instalați Docker :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
yum install -y docker-ce&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Apoi instalați pachetele Kubernetes necesare:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
yum install -y kubeadm kubelet kubectl&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Editați fișierul de configurare al kubelet-ului systemd (/etc/systemd/system/kubelet.service.d/10-kubeadm.conf)  pentru a adăuga următoarea linie în secțiunea &amp;quot;[Service]&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Environment=&amp;quot;KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
astfel încât :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat /etc/systemd/system/kubelet.service.d/10-kubeadm.conf&lt;br /&gt;
# Note: This dropin only works with kubeadm and kubelet v1.11+&lt;br /&gt;
[Service]&lt;br /&gt;
Environment=&amp;quot;KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf&amp;quot;&lt;br /&gt;
Environment=&amp;quot;KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml&amp;quot;&lt;br /&gt;
*Environment=&amp;quot;KUBELET_CGROUP_ARGS=--cgroup-driver=cgroupfs&amp;quot;*&lt;br /&gt;
# This is a file that &amp;quot;kubeadm init&amp;quot; and &amp;quot;kubeadm join&amp;quot; generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically&lt;br /&gt;
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env&lt;br /&gt;
# This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use&lt;br /&gt;
# the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file.&lt;br /&gt;
EnvironmentFile=-/etc/sysconfig/kubelet&lt;br /&gt;
ExecStart=&lt;br /&gt;
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Reîncărcați configurația, activați și apoi porniți serviciile docker și kubelet prin intermediul următoarelor trei comenzi:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
systemctl daemon-reload&lt;br /&gt;
systemctl enable docker kubelet&lt;br /&gt;
systemctl start docker kubelet&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dezactivați swap-ul de sistem (kubelet nu acceptă memoria swap, veți primi o eroare în timpul verificărilor pre-flight atunci când vă inițializați clusterul prin kubeadms dacă nu o dezactivați):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
swapoff -a&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
vă rugăm să nu uitați să comentați/eliminați și linia swap din fișierul /etc/fstab al fiecărei instanțe, cum ar fi :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#/dev/mapper/vg01-swap  swap            swap    defaults                0       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Inițializarea clusterului Kubernetes ==&lt;br /&gt;
&lt;br /&gt;
Următoarele acțiuni trebuie efectuate numai pe instanța principală a nodului &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Începeți inițializarea clusterului Kubernetes prin intermediul comenzii de mai jos, având grijă să modificați valoarea parametrului &amp;quot;--apiserver-advertise-address=&amp;quot; cu adresa ip a instanței master.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
kubeadm init --apiserver-advertise-address=&amp;lt;ip de votre instance master&amp;gt; --pod-network-cidr=10.244.0.0/16&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notă: Vă rugăm să nu modificați ip-ul de rețea &amp;quot;10.244.0.0/16&amp;quot; indicat în parametrul &amp;quot;--pod-network-cidr=&amp;quot;, deoarece acest parametru ne permite să indicăm că vom utiliza plugin-ul CNI Flannel pentru a gestiona partea de rețea a podurilor noastre.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Iată cum ar trebui să arate rezultatul acestei comenzi atunci când clusterul se inițializează cu succes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[root@k8s-master ~]# kubeadm init --apiserver-advertise-address=10.1.1.16 --pod-network-cidr=10.244.0.0/16&lt;br /&gt;
[init] using Kubernetes version: v1.12.2&lt;br /&gt;
[preflight] running pre-flight checks&lt;br /&gt;
[preflight/images] Pulling images required for setting up a Kubernetes cluster&lt;br /&gt;
[preflight/images] This might take a minute or two, depending on the speed of your internet connection&lt;br /&gt;
[preflight/images] You can also perform this action in beforehand using 'kubeadm config images pull'&lt;br /&gt;
[kubelet] Writing kubelet environment file with flags to file &amp;quot;/var/lib/kubelet/kubeadm-flags.env&amp;quot;&lt;br /&gt;
[kubelet] Writing kubelet configuration to file &amp;quot;/var/lib/kubelet/config.yaml&amp;quot;&lt;br /&gt;
[preflight] Activating the kubelet service&lt;br /&gt;
[certificates] Generated ca certificate and key.&lt;br /&gt;
[certificates] Generated apiserver-kubelet-client certificate and key.&lt;br /&gt;
[certificates] Generated apiserver certificate and key.&lt;br /&gt;
[certificates] apiserver serving cert is signed for DNS names [k8s-master.cs437cloud.internal kubernetes kubernetes.default kubernetes.default.svc kubernetes.default.svc.cluster.local] and IPs [10.96.0.1 10.1.1.16]&lt;br /&gt;
[certificates] Generated front-proxy-ca certificate and key.&lt;br /&gt;
[certificates] Generated front-proxy-client certificate and key.&lt;br /&gt;
[certificates] Generated etcd/ca certificate and key.&lt;br /&gt;
[certificates] Generated etcd/server certificate and key.&lt;br /&gt;
[certificates] etcd/server serving cert is signed for DNS names [k8s-master.cs437cloud.internal localhost] and IPs [127.0.0.1 ::1]&lt;br /&gt;
[certificates] Generated etcd/peer certificate and key.&lt;br /&gt;
[certificates] etcd/peer serving cert is signed for DNS names [k8s-master.cs437cloud.internal localhost] and IPs [10.1.1.16 127.0.0.1 ::1]&lt;br /&gt;
[certificates] Generated etcd/healthcheck-client certificate and key.&lt;br /&gt;
[certificates] Generated apiserver-etcd-client certificate and key.&lt;br /&gt;
[certificates] valid certificates and keys now exist in &amp;quot;/etc/kubernetes/pki&amp;quot;&lt;br /&gt;
[certificates] Generated sa key and public key.&lt;br /&gt;
[kubeconfig] Wrote KubeConfig file to disk: &amp;quot;/etc/kubernetes/admin.conf&amp;quot;&lt;br /&gt;
[kubeconfig] Wrote KubeConfig file to disk: &amp;quot;/etc/kubernetes/kubelet.conf&amp;quot;&lt;br /&gt;
[kubeconfig] Wrote KubeConfig file to disk: &amp;quot;/etc/kubernetes/controller-manager.conf&amp;quot;&lt;br /&gt;
[kubeconfig] Wrote KubeConfig file to disk: &amp;quot;/etc/kubernetes/scheduler.conf&amp;quot;&lt;br /&gt;
[controlplane] wrote Static Pod manifest for component kube-apiserver to &amp;quot;/etc/kubernetes/manifests/kube-apiserver.yaml&amp;quot;&lt;br /&gt;
[controlplane] wrote Static Pod manifest for component kube-controller-manager to &amp;quot;/etc/kubernetes/manifests/kube-controller-manager.yaml&amp;quot;&lt;br /&gt;
[controlplane] wrote Static Pod manifest for component kube-scheduler to &amp;quot;/etc/kubernetes/manifests/kube-scheduler.yaml&amp;quot;&lt;br /&gt;
[etcd] Wrote Static Pod manifest for a local etcd instance to &amp;quot;/etc/kubernetes/manifests/etcd.yaml&amp;quot;&lt;br /&gt;
[init] waiting for the kubelet to boot up the control plane as Static Pods from directory &amp;quot;/etc/kubernetes/manifests&amp;quot;&lt;br /&gt;
[init] this might take a minute or longer if the control plane images have to be pulled&lt;br /&gt;
[apiclient] All control plane components are healthy after 32.502898 seconds&lt;br /&gt;
[uploadconfig] storing the configuration used in ConfigMap &amp;quot;kubeadm-config&amp;quot; in the &amp;quot;kube-system&amp;quot; Namespace&lt;br /&gt;
[kubelet] Creating a ConfigMap &amp;quot;kubelet-config-1.12&amp;quot; in namespace kube-system with the configuration for the kubelets in the cluster&lt;br /&gt;
[markmaster] Marking the node k8s-master.cs437cloud.internal as master by adding the label &amp;quot;node-role.kubernetes.io/master=''&amp;quot;&lt;br /&gt;
[markmaster] Marking the node k8s-master.cs437cloud.internal as master by adding the taints [node-role.kubernetes.io/master:NoSchedule]&lt;br /&gt;
[patchnode] Uploading the CRI Socket information &amp;quot;/var/run/dockershim.sock&amp;quot; to the Node API object &amp;quot;k8s-master.cs437cloud.internal&amp;quot; as an annotation&lt;br /&gt;
[bootstraptoken] using token: e83pes.u3igpccj2metetu8&lt;br /&gt;
[bootstraptoken] configured RBAC rules to allow Node Bootstrap tokens to post CSRs in order for nodes to get long term certificate credentials&lt;br /&gt;
[bootstraptoken] configured RBAC rules to allow the csrapprover controller automatically approve CSRs from a Node Bootstrap Token&lt;br /&gt;
[bootstraptoken] configured RBAC rules to allow certificate rotation for all node client certificates in the cluster&lt;br /&gt;
[bootstraptoken] creating the &amp;quot;cluster-info&amp;quot; ConfigMap in the &amp;quot;kube-public&amp;quot; namespace&lt;br /&gt;
[addons] Applied essential addon: CoreDNS&lt;br /&gt;
[addons] Applied essential addon: kube-proxy&lt;br /&gt;
&lt;br /&gt;
Your Kubernetes master has initialized successfully!&lt;br /&gt;
&lt;br /&gt;
To start using your cluster, you need to run the following as a regular user:&lt;br /&gt;
&lt;br /&gt;
  mkdir -p $HOME/.kube&lt;br /&gt;
  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config&lt;br /&gt;
  sudo chown $(id -u):$(id -g) $HOME/.kube/config&lt;br /&gt;
&lt;br /&gt;
You should now deploy a pod network to the cluster.&lt;br /&gt;
Run &amp;quot;kubectl apply -f [podnetwork].yaml&amp;quot; with one of the options listed at:&lt;br /&gt;
  https://kubernetes.io/docs/concepts/cluster-administration/addons/&lt;br /&gt;
&lt;br /&gt;
You can now join any number of machines by running the following on each node&lt;br /&gt;
as root:&lt;br /&gt;
&lt;br /&gt;
  kubeadm join 10.1.1.16:6443 --token e83pes.u3igpccj2metetu8 --discovery-token-ca-cert-hash sha256:7ea9169bc5ac77b3a2ec37e5129006d9a895ce040e306f3093ce77e7422f7f1c&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Efectuăm operațiile solicitate pentru a finaliza inițializarea clusterului nostru:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Creăm un director și un fișier de configurare în directorul utilizatorului nostru (root în cazul nostru):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
mkdir -p $HOME/.kube&lt;br /&gt;
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Implementăm rețeaua noastră de poduri Flannel pentru clusterul nostru:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml&lt;br /&gt;
clusterrole.rbac.authorization.k8s.io/flannel created&lt;br /&gt;
clusterrolebinding.rbac.authorization.k8s.io/flannel created&lt;br /&gt;
serviceaccount/flannel created&lt;br /&gt;
configmap/kube-flannel-cfg created&lt;br /&gt;
daemonset.extensions/kube-flannel-ds-amd64 created&lt;br /&gt;
daemonset.extensions/kube-flannel-ds-arm64 created&lt;br /&gt;
daemonset.extensions/kube-flannel-ds-arm created&lt;br /&gt;
daemonset.extensions/kube-flannel-ds-ppc64le created&lt;br /&gt;
daemonset.extensions/kube-flannel-ds-s390x created&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
notă: vom păstra ultima comandă furnizată de întoarcerea comenzii de inițializare laterală (&amp;quot;kubeadm join...&amp;quot;) pentru a o rula mai târziu pe instanțele noastre de lucrători pentru a le alătura la clusterul nostru.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Acum putem face primele verificări ale clusterului nostru de la instanța noastră principală:&lt;br /&gt;
&lt;br /&gt;
Tastați comanda &amp;quot;kubectl get nodes&amp;quot; pentru a verifica nodurile prezente în prezent în clusterul dumneavoastră:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[root@k8s-master ~]# kubectl get nodes&lt;br /&gt;
NAME                             STATUS   ROLES    AGE   VERSION&lt;br /&gt;
k8s-master.cs437cloud.internal   Ready    master   41m   v1.12.2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notă: în prezent există doar nodul principal, ceea ce este normal, deoarece nu am adăugat încă celelalte noduri la cluster.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tastați comanda &amp;quot;kubectl get pods --all-namespaces&amp;quot; pentru a verifica podurile/containerele prezente în prezent în clusterul dumneavoastră: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[root@k8s-master ~]# kubectl get pods --all-namespaces&lt;br /&gt;
NAMESPACE     NAME                                                     READY   STATUS    RESTARTS   AGE&lt;br /&gt;
kube-system   coredns-576cbf47c7-fwxj9                                 1/1     Running   0          41m&lt;br /&gt;
kube-system   coredns-576cbf47c7-t86s9                                 1/1     Running   0          41m&lt;br /&gt;
kube-system   etcd-k8s-master.cs437cloud.internal                      1/1     Running   0          41m&lt;br /&gt;
kube-system   kube-apiserver-k8s-master.cs437cloud.internal            1/1     Running   0          41m&lt;br /&gt;
kube-system   kube-controller-manager-k8s-master.cs437cloud.internal   1/1     Running   0          41m&lt;br /&gt;
kube-system   kube-flannel-ds-amd64-wcm7v                              1/1     Running   0          84s&lt;br /&gt;
kube-system   kube-proxy-h94bs                                         1/1     Running   0          41m&lt;br /&gt;
kube-system   kube-scheduler-k8s-master.cs437cloud.internal            1/1     Running   0          40m&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notă: Există doar poduri corespunzătoare componentelor Kubernetes necesare pentru nodul nostru principal (kube-apiserver, etcd, kube-scheduler etc.).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putem verifica starea acestor componente cu următoarea comandă:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[root@k8s-master ~]# kubectl get cs&lt;br /&gt;
NAME                 STATUS    MESSAGE              ERROR&lt;br /&gt;
scheduler            Healthy   ok&lt;br /&gt;
controller-manager   Healthy   ok&lt;br /&gt;
etcd-0               Healthy   {&amp;quot;health&amp;quot;: &amp;quot;true&amp;quot;}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Adăugarea nodurilor de lucru la cluster ==&lt;br /&gt;
&lt;br /&gt;
Acțiuni care urmează să fie efectuate numai pe instanțele/nodurile lucrătoare&lt;br /&gt;
&lt;br /&gt;
Pe fiecare dintre instanțele worker (nu o faceți pe instanța master), rulați comanda &amp;quot;kubeadm join ...&amp;quot; furnizată la sfârșitul inițializării clusterului de mai sus:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[root@k8s-worker01 ~]# kubeadm join 10.1.1.16:6443 --token e83pes.u3igpccj2metetu8 --discovery-token-ca-cert-hash sha256:7ea9169bc5ac77b3a2ec37e5129006d9a895ce040e306f3093ce77e7422f7f1c&lt;br /&gt;
[preflight] running pre-flight checks&lt;br /&gt;
        [WARNING RequiredIPVSKernelModulesAvailable]: the IPVS proxier will not be used, because the following required kernel modules are not loaded: [ip_vs_sh ip_vs ip_vs_rr ip_vs_wrr] or no builtin kernel ipvs support: map[ip_vs:{} ip_vs_rr:{} ip_vs_wrr:{} ip_vs_sh:{} nf_conntrack_ipv4:{}]&lt;br /&gt;
you can solve this problem with following methods:&lt;br /&gt;
 1. Run 'modprobe -- ' to load missing kernel modules;&lt;br /&gt;
2. Provide the missing builtin kernel ipvs support&lt;br /&gt;
&lt;br /&gt;
[discovery] Trying to connect to API Server &amp;quot;10.1.1.16:6443&amp;quot;&lt;br /&gt;
[discovery] Created cluster-info discovery client, requesting info from &amp;quot;https://10.1.1.16:6443&amp;quot;&lt;br /&gt;
[discovery] Requesting info from &amp;quot;https://10.1.1.16:6443&amp;quot; again to validate TLS against the pinned public key&lt;br /&gt;
[discovery] Cluster info signature and contents are valid and TLS certificate validates against pinned roots, will use API Server &amp;quot;10.1.1.16:6443&amp;quot;&lt;br /&gt;
[discovery] Successfully established connection with API Server &amp;quot;10.1.1.16:6443&amp;quot;&lt;br /&gt;
[kubelet] Downloading configuration for the kubelet from the &amp;quot;kubelet-config-1.12&amp;quot; ConfigMap in the kube-system namespace&lt;br /&gt;
[kubelet] Writing kubelet configuration to file &amp;quot;/var/lib/kubelet/config.yaml&amp;quot;&lt;br /&gt;
[kubelet] Writing kubelet environment file with flags to file &amp;quot;/var/lib/kubelet/kubeadm-flags.env&amp;quot;&lt;br /&gt;
[preflight] Activating the kubelet service&lt;br /&gt;
[tlsbootstrap] Waiting for the kubelet to perform the TLS Bootstrap...&lt;br /&gt;
[patchnode] Uploading the CRI Socket information &amp;quot;/var/run/dockershim.sock&amp;quot; to the Node API object &amp;quot;k8s-worker01.cs437cloud.internal&amp;quot; as an annotation&lt;br /&gt;
&lt;br /&gt;
This node has joined the cluster:&lt;br /&gt;
* Certificate signing request was sent to apiserver and a response was received.&lt;br /&gt;
* The Kubelet was informed of the new secure connection details.&lt;br /&gt;
&lt;br /&gt;
Run 'kubectl get nodes' on the master to see this node join the cluster.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[root@k8s-worker02 ~]# kubeadm join 10.1.1.16:6443 --token e83pes.u3igpccj2metetu8 --discovery-token-ca-cert-hash sha256:7ea9169bc5ac77b3a2ec37e5129006d9a895ce040e306f3093ce77e7422f7f1c&lt;br /&gt;
[preflight] running pre-flight checks&lt;br /&gt;
        [WARNING RequiredIPVSKernelModulesAvailable]: the IPVS proxier will not be used, because the following required kernel modules are not loaded: [ip_vs_wrr ip_vs_sh ip_vs ip_vs_rr] or no builtin kernel ipvs support: map[ip_vs:{} ip_vs_rr:{} ip_vs_wrr:{} ip_vs_sh:{} nf_conntrack_ipv4:{}]&lt;br /&gt;
you can solve this problem with following methods:&lt;br /&gt;
 1. Run 'modprobe -- ' to load missing kernel modules;&lt;br /&gt;
2. Provide the missing builtin kernel ipvs support&lt;br /&gt;
&lt;br /&gt;
[discovery] Trying to connect to API Server &amp;quot;10.1.1.16:6443&amp;quot;&lt;br /&gt;
[discovery] Created cluster-info discovery client, requesting info from &amp;quot;https://10.1.1.16:6443&amp;quot;&lt;br /&gt;
[discovery] Requesting info from &amp;quot;https://10.1.1.16:6443&amp;quot; again to validate TLS against the pinned public key&lt;br /&gt;
[discovery] Cluster info signature and contents are valid and TLS certificate validates against pinned roots, will use API Server &amp;quot;10.1.1.16:6443&amp;quot;&lt;br /&gt;
[discovery] Successfully established connection with API Server &amp;quot;10.1.1.16:6443&amp;quot;&lt;br /&gt;
[kubelet] Downloading configuration for the kubelet from the &amp;quot;kubelet-config-1.12&amp;quot; ConfigMap in the kube-system namespace&lt;br /&gt;
[kubelet] Writing kubelet configuration to file &amp;quot;/var/lib/kubelet/config.yaml&amp;quot;&lt;br /&gt;
[kubelet] Writing kubelet environment file with flags to file &amp;quot;/var/lib/kubelet/kubeadm-flags.env&amp;quot;&lt;br /&gt;
[preflight] Activating the kubelet service&lt;br /&gt;
[tlsbootstrap] Waiting for the kubelet to perform the TLS Bootstrap...&lt;br /&gt;
[patchnode] Uploading the CRI Socket information &amp;quot;/var/run/dockershim.sock&amp;quot; to the Node API object &amp;quot;k8s-worker02.cs437cloud.internal&amp;quot; as an annotation&lt;br /&gt;
&lt;br /&gt;
This node has joined the cluster:&lt;br /&gt;
* Certificate signing request was sent to apiserver and a response was received.&lt;br /&gt;
* The Kubelet was informed of the new secure connection details.&lt;br /&gt;
&lt;br /&gt;
Run 'kubectl get nodes' on the master to see this node join the cluster.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Verificarea stării clusterului  ==&lt;br /&gt;
&lt;br /&gt;
Acțiuni care urmează să fie efectuate de la instanța/nodul principal&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Verificați dacă nodurile de lucru au fost adăugate la clusterul dvs. prin re-executarea comenzii &amp;quot;kubectl get nodes&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[root@k8s-master ~]# kubectl get nodes&lt;br /&gt;
NAME                               STATUS   ROLES    AGE    VERSION&lt;br /&gt;
k8s-master.cs437cloud.internal     Ready    master   46m    v1.12.2&lt;br /&gt;
k8s-worker01.cs437cloud.internal   Ready    &amp;lt;none&amp;gt;   103s   v1.12.2&lt;br /&gt;
k8s-worker02.cs437cloud.internal   Ready    &amp;lt;none&amp;gt;   48s    v1.12.2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Observație : Putem vedea cele două noduri de lucru (k8s-worker01 și k8s-worker02), deci au fost adăugate la clusterul nostru.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Acum să rulăm din nou comanda &amp;quot;kubectl get pods --all-namespaces&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[root@k8s-master ~]# kubectl get pods --all-namespaces&lt;br /&gt;
NAMESPACE     NAME                                                     READY   STATUS    RESTARTS   AGE&lt;br /&gt;
kube-system   coredns-576cbf47c7-fwxj9                                 1/1     Running   0          46m&lt;br /&gt;
kube-system   coredns-576cbf47c7-t86s9                                 1/1     Running   0          46m&lt;br /&gt;
kube-system   etcd-k8s-master.cs437cloud.internal                      1/1     Running   0          46m&lt;br /&gt;
kube-system   kube-apiserver-k8s-master.cs437cloud.internal            1/1     Running   0          46m&lt;br /&gt;
kube-system   kube-controller-manager-k8s-master.cs437cloud.internal   1/1     Running   0          46m&lt;br /&gt;
kube-system   kube-flannel-ds-amd64-724nl                              1/1     Running   0          2m6s&lt;br /&gt;
kube-system   kube-flannel-ds-amd64-wcm7v                              1/1     Running   0          6m31s&lt;br /&gt;
kube-system   kube-flannel-ds-amd64-z7mwg                              1/1     Running   3          70s&lt;br /&gt;
kube-system   kube-proxy-8r7wg                                         1/1     Running   0          2m6s&lt;br /&gt;
kube-system   kube-proxy-h94bs                                         1/1     Running   0          46m&lt;br /&gt;
kube-system   kube-proxy-m2f5r                                         1/1     Running   0          70s&lt;br /&gt;
kube-system   kube-scheduler-k8s-master.cs437cloud.internal            1/1     Running   0          46m&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notă: Puteți vedea că există atâtea poduri/containere &amp;quot;kube-flannel&amp;quot; și &amp;quot;kube-proxy&amp;quot; câte noduri avem în clusterul nostru.&lt;br /&gt;
&lt;br /&gt;
== Implementarea unei prime capsule ==&lt;br /&gt;
&lt;br /&gt;
Vom desfășura primul nostru [https://kubernetes.io/docs/concepts/workloads/pods/pod/ pod] în clusterul nostru Kubernetes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pentru simplitate, alegem să implementăm un pod (fără replici) numit &amp;quot;nginx&amp;quot; și să folosim imaginea &amp;quot;nginx&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[root@k8s-master ~]# kubectl create deployment nginx --image=nginx&lt;br /&gt;
deployment.apps/nginx created&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Dacă verificăm, acesta apare bine la întoarcerea comenzii care listează podurile din clusterul nostru:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[root@k8s-master ~]# kubectl get pods --all-namespaces&lt;br /&gt;
NAMESPACE     NAME                                                     READY   STATUS    RESTARTS   AGE&lt;br /&gt;
default       nginx-55bd7c9fd-5bghl                                    1/1     Running   0          104s&lt;br /&gt;
kube-system   coredns-576cbf47c7-fwxj9                                 1/1     Running   0          57m&lt;br /&gt;
kube-system   coredns-576cbf47c7-t86s9                                 1/1     Running   0          57m&lt;br /&gt;
kube-system   etcd-k8s-master.cs437cloud.internal                      1/1     Running   0          57m&lt;br /&gt;
kube-system   kube-apiserver-k8s-master.cs437cloud.internal            1/1     Running   0          57m&lt;br /&gt;
kube-system   kube-controller-manager-k8s-master.cs437cloud.internal   1/1     Running   0          57m&lt;br /&gt;
kube-system   kube-flannel-ds-amd64-724nl                              1/1     Running   0          13m&lt;br /&gt;
kube-system   kube-flannel-ds-amd64-wcm7v                              1/1     Running   0          17m&lt;br /&gt;
kube-system   kube-flannel-ds-amd64-z7mwg                              1/1     Running   3          12m&lt;br /&gt;
kube-system   kube-proxy-8r7wg                                         1/1     Running   0          13m&lt;br /&gt;
kube-system   kube-proxy-h94bs                                         1/1     Running   0          57m&lt;br /&gt;
kube-system   kube-proxy-m2f5r                                         1/1     Running   0          12m&lt;br /&gt;
kube-system   kube-scheduler-k8s-master.cs437cloud.internal            1/1     Running   0          57m&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Acesta apare în partea de sus a listei într-un spațiu de nume diferit de &amp;quot;kube-system&amp;quot;, deoarece nu este o componentă specifică funcționării Kubernetes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De asemenea, este posibil să se evite afișarea podurilor specifice spațiului de nume kube-system prin executarea acestei comenzi fără parametrul &amp;quot;--all-namespace&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[root@k8s-master ~]# kubectl get pods&lt;br /&gt;
NAME                      READY   STATUS    RESTARTS   AGE&lt;br /&gt;
nginx-55bd7c9fd-vs4fq     1/1     Running   0          3d2h&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pentru a afișa etichetele :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[root@k8s-master ~]# kubectl get pods --show-labels&lt;br /&gt;
NAME                      READY   STATUS    RESTARTS   AGE    LABELS&lt;br /&gt;
nginx-55bd7c9fd-ckltn     1/1     Running   0          8m2s   app=nginx,pod-template-hash=55bd7c9fd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De asemenea, putem verifica implementările noastre cu următoarea comandă:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[root@k8s-master ~]# kubectl get deployments&lt;br /&gt;
NAME    DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE&lt;br /&gt;
nginx   1         1         1            1           93m&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deci, avem un pod nginx implementat și pornit, dar nu este încă accesibil din exterior. Pentru a-l face accesibil din exterior, trebuie să expunem portul podului nostru prin crearea serviciului (de tip NodePort) prin următoarea comandă:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[root@k8s-master ~]# kubectl create service nodeport nginx --tcp=80:80&lt;br /&gt;
service/nginx created&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Serviciul nostru este astfel creat:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[root@k8s-master ~]# kubectl get svc&lt;br /&gt;
NAME         TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)        AGE&lt;br /&gt;
kubernetes   ClusterIP   10.96.0.1        &amp;lt;none&amp;gt;        443/TCP        147m&lt;br /&gt;
nginx        NodePort    10.108.251.178   &amp;lt;none&amp;gt;        80:30566/TCP   20s&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notă: Ascultă pe portul 80/tcp și va fi disponibil/expus din exterior pe portul 30566/tcp.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Putem obține ip-ul flannel al podului nostru și numele nodului pe care rulează în prezent prin intermediul următoarei comenzi:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[root@k8s-master ~]# kubectl get pods --selector=&amp;quot;app=nginx&amp;quot; --output=wide&lt;br /&gt;
NAME                    READY   STATUS    RESTARTS   AGE    IP           NODE                               NOMINATED NODE&lt;br /&gt;
nginx-55bd7c9fd-vs4fq   1/1     Running   0          174m   10.244.2.2   k8s-worker02.cs437cloud.internal   &amp;lt;none&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Aici, podul nostru nginx are ip 10.244.2.2.2 și rulează pe nodul nostru k8s-worker02.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
De asemenea, puteți rula pur și simplu o comandă sau deschide un shell pe podul nostru nginx prin intermediul următoarei comenzi (foarte asemănătoare cu comanda docker):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
[root@k8s-master ~]# kubectl exec -it nginx-55bd7c9fd-vs4fq -- /bin/bash&lt;br /&gt;
root@nginx-55bd7c9fd-vs4fq:/#&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tot ce trebuie să faceți este să creați regula de echilibrare a încărcăturii pe rețeaua Ikoula One Cloud pentru a accesa / face public serverul dvs. web (pod nginx):&lt;br /&gt;
&lt;br /&gt;
- Conectați-vă la [https://cloudstack.ikoula.com/client Nor Ikoula One]&lt;br /&gt;
&lt;br /&gt;
- mergeți la &amp;quot;Rețea&amp;quot; în meniul vertical din stânga&lt;br /&gt;
&lt;br /&gt;
- faceți clic pe rețeaua în care ați implementat instanțele Kubernetes, apoi pe &amp;quot;View IP Addresses&amp;quot; și pe IP-ul sursă NAT și mergeți la fila &amp;quot;Configuration&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
- faceți clic pe &amp;quot;Load Balancing&amp;quot; și creați regula dvs. specificând un nume, portul public &amp;quot;80&amp;quot; în cazul nostru, portul privat &amp;quot;30566&amp;quot; în cazul nostru (vezi mai sus), alegând un algoritm LB (de exemplu, round-robin), cum ar fi :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:faq_k8s_regle_lb-01.png|Instanța Kubernetes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
- bifați toate instanțele de lucrător:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:faq_k8s_regle_lb-02.png|Verificați instanțele de lucru kubernetes]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Testați accesul la serverul dvs. web / podul nginx din browser (prin intermediul ip-ului public al rețelei dvs. pe care ați creat regula LB):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:faq_k8s_browser_nginx.png|Acces la serverul dvs. web]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Faptul că podul nginx poate fi accesat de pe oricare dintre nodurile dvs. este posibil datorită componentei &amp;quot;kube-proxy&amp;quot;, care este responsabilă de direcționarea conexiunilor către nodul (nodurile) pe care rulează (în cazul replicilor).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Deci, tocmai ați implementat un cluster Kubernetes de bază de 3 noduri cu un master și doi workers.&lt;br /&gt;
&lt;br /&gt;
== Mergeți mai departe ==&lt;br /&gt;
&lt;br /&gt;
Puteți merge mai departe prin implementarea tabloului de bord Kubernetes sau prin crearea de volume persistente pentru podurile dvs., prin creșterea numărului de noduri de lucru sau chiar prin atribuirea redundantă a rolului de maestru pentru o disponibilitate ridicată sau prin dedicarea nodurilor pentru anumite componente, cum ar fi Etcd, de exemplu. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Iată câteva linkuri utile:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://kubernetes.io/docs/reference/kubectl/cheatsheet/ &lt;br /&gt;
&lt;br /&gt;
https://kubernetes.io/docs/reference/kubectl/docker-cli-to-kubectl/&lt;br /&gt;
&lt;br /&gt;
https://kubernetes.io/docs/concepts/storage/volumes/&lt;br /&gt;
&lt;br /&gt;
https://kubernetes.io/docs/tasks/configure-pod-container/configure-persistent-volume-storage/&lt;br /&gt;
&lt;br /&gt;
https://kubernetes.io/docs/tasks/access-application-cluster/communicate-containers-same-pod-shared-volume/&lt;br /&gt;
&lt;br /&gt;
https://kubernetes.io/docs/tutorials/stateful-application/mysql-wordpress-persistent-volume/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:cloudstack]]&lt;br /&gt;
[[Category:cloud public]]&lt;br /&gt;
[[Category:cloud privat]]&lt;br /&gt;
[[Category:Docker]]&lt;br /&gt;
[[Category:CoreOS]]&lt;br /&gt;
[[Category:Cloud]]&lt;/div&gt;</summary>
		<author><name>Ikbot</name></author>
	</entry>
</feed>