2021 tuto
This commit is contained in:
parent
ba77aca73b
commit
c4bb727cd4
29 changed files with 422 additions and 257 deletions
|
|
@ -3,12 +3,35 @@
|
|||
Mise en place
|
||||
=============
|
||||
|
||||
La mise en place d'un cluster Kubernetes est une opération très longue, car
|
||||
elle nécessite l'installation et la configuration de nombreux composants.
|
||||
Cette opération n'étant pas très palpitante, nous ne la verrons pas
|
||||
aujourd'hui.
|
||||
La mise en place d'un cluster Kubernetes ([prononcé
|
||||
Ku-ber-né-tèce](https://github.com/kubernetes/kubernetes/issues/44308) en grec
|
||||
ancien) est une opération qui peut s'avérer très longue et complexe, car elle
|
||||
nécessite l'installation et la configuration de nombreux composants avant de
|
||||
pouvoir être utilisé sereinement.
|
||||
|
||||
Cette opération n'étant pas très palpitante (c'est beaucoup de lecture de
|
||||
documentations et d'heures passées à essayer de faire tomber en marche tous les
|
||||
composants d'un seul coup), nous ne la verrons pas aujourd'hui.
|
||||
|
||||
D'ailleurs, dans le milieu professionnel, il est plutôt rare de voir des
|
||||
entreprises investir dans la gestion de leur propre cluster Kubernetes. La
|
||||
plupart des entreprises qui choisissent d'utiliser Kubernetes pour gérer leurs
|
||||
infrastructures, choisissent de passer par un prestataire. L'entreprise délègue
|
||||
donc la gestion de leur cluster à une autre entreprise, dont c'est la cœur de
|
||||
métier. La plupart du temps, il va s'agir d'Amazon (via [Elastic Kubernetes
|
||||
Service](https://aws.amazon.com/fr/eks/)), d'Azur ([Kubernetes
|
||||
Service](https://azure.microsoft.com/fr-fr/services/kubernetes-service/)) ou
|
||||
Google ([Kubernetes Engine](https://cloud.google.com/kubernetes-engine/)), mais
|
||||
d'autres acteurs plus petits existent aussi
|
||||
([OVHcloud](https://www.ovhcloud.com/fr/public-cloud/kubernetes/), ...).
|
||||
|
||||
|
||||
Pour jouer aujourd'hui, deux solutions s'offrent à nous pour commencer à
|
||||
utiliser Kubernetes facilement :
|
||||
|
||||
- Kubernetes in Docker (kind) : pour tenter l'aventure sur votre machine,
|
||||
- Play With Kubernetes : si vous ne vous en sortez pas avec `kind`.
|
||||
|
||||
Pour jouer aujourd'hui, deux solutions s'offrent à nous :
|
||||
|
||||
Kubernetes in Docker (kind)
|
||||
---------------------------
|
||||
|
|
@ -17,11 +40,11 @@ Kubernetes in Docker (kind)
|
|||
Docker.
|
||||
|
||||
Pour commencer, il nous faudra télécharger le binaire (go, donc statique)
|
||||
suivant :
|
||||
suivant (il existe pour Linux, macOS et Windows) :
|
||||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
curl -Lo kind https://github.com/kubernetes-sigs/kind/releases/download/v0.6.0/kind-$(uname)-amd64
|
||||
curl -Lo kind https://github.com/kubernetes-sigs/kind/releases/download/v0.9.0/kind-$(uname)-amd64
|
||||
chmod +x kind
|
||||
```
|
||||
</div>
|
||||
|
|
@ -35,9 +58,16 @@ master et 2 workers. Avant de lancer leur création.
|
|||
```bash
|
||||
cat > my-cluster.yml <<EOF
|
||||
kind: Cluster
|
||||
apiVersion: kind.sigs.k8s.io/v1alpha3
|
||||
apiVersion: kind.x-k8s.io/v1alpha4
|
||||
nodes:
|
||||
- role: control-plane
|
||||
extraPortMappings:
|
||||
- containerPort: 8080
|
||||
hostPort: 12345
|
||||
- containerPort: 30001
|
||||
hostPort: 30001
|
||||
- containerPort: 30002
|
||||
hostPort: 30002
|
||||
- role: worker
|
||||
- role: worker
|
||||
EOF
|
||||
|
|
@ -51,7 +81,7 @@ Profitons-en pour télécharger `kubectl` :
|
|||
|
||||
<div lang="en-US">
|
||||
```bash
|
||||
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.16.3/bin/linux/amd64/kubectl
|
||||
curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.19.4/bin/linux/amd64/kubectl
|
||||
chmod +x kubectl
|
||||
```
|
||||
</div>
|
||||
|
|
@ -64,11 +94,15 @@ Une fois que tout sera opérationnel, nous devrions obtenir :
|
|||
<div lang="en-US">
|
||||
```
|
||||
42sh$ kubectl version
|
||||
Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.3", GitCommit:"b3cbbae08ec52a7fc73d334838e18d17e8512749", GitTreeState:"archive", BuildDate:"2019-11-26T02:51:51Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
|
||||
Server Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.3", GitCommit:"b3cbbae08ec52a7fc73d334838e18d17e8512749", GitTreeState:"clean", BuildDate:"2019-11-16T01:01:59Z", GoVersion:"go1.12.12", Compiler:"gc", Platform:"linux/amd64"}
|
||||
Client Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.3", GitCommit:"1e11e4a2108024935ecfcb2912226cedeafd99df", GitTreeState:"archive", BuildDate:"2020-11-18T12:02:06Z", GoVersion:"go1.15.5", Compiler:"gc", Platform:"linux/amd64"}
|
||||
Server Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.1", GitCommit:"206bcadf021e76c27513500ca24182692aabd17e", GitTreeState:"clean", BuildDate:"2020-09-14T07:30:52Z", GoVersion:"go1.15", Compiler:"gc", Platform:"linux/amd64"}
|
||||
```
|
||||
</div>
|
||||
|
||||
Par défaut, `kubectl` va tenter de contacter le port local 2375, `kind` aura
|
||||
pris soin de l'exposer pour vous au moment de la création du cluster.
|
||||
|
||||
Passez ensuite à la section 2 si vous avez réussi à mettre en place `kind`.
|
||||
|
||||
Play With Kubernetes
|
||||
--------------------
|
||||
|
|
@ -135,12 +169,12 @@ kubectl apply -n kube-system -f \
|
|||
Minikube, Docker for Mac/Windows, MicroK8s, ...
|
||||
-----------------------------------------------
|
||||
|
||||
Si les solutions précédentes ne sont pas adaptés à votre usage, de nombreuses
|
||||
Si les solutions précédentes ne sont pas adaptées à votre usage, de nombreuses
|
||||
autres applications permettent de mettre en place un cluster plus ou moins
|
||||
complet, facilement.
|
||||
|
||||
Vous pouvez tenter d'utiliser
|
||||
[minikube](https://kubernetes.io/docs/setup/learning-environment/minikube/),
|
||||
[microk8s](https://microk8s.io/), ... Notez également que *Docker for Mac* et
|
||||
*Docker for Windows* intègrent également Kubernetes depuis quelques versions ;
|
||||
*Docker for Windows* intègrent aussi Kubernetes depuis quelques versions ;
|
||||
il convient de l'activer dans les préférences de l'application.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue