Votre cluser kubernetes en local et avec docker !

Introduction

Un superbe cluster KIND (Kubernetes IN Docker) qui tourne sous docker sur votre machine pour du dev (chart) ou pour s’autoformer, ça vous dit ?

Un cluster à installer rapidement, en local ! Cela vous permettra de vous autoformer, de créer vos packages HELM et avec en prime, un dashboard ! :).

Avant de commencer

  • Avoir docker sur votre machine

Le tuto est basé sur une utilisation de MacOSX

La procédure :

On commence par installer KIND

La commande :

1
2
3
ARCH="arm64"
KIND_VERSION="v0.20.0"
wget https://github.com/kubernetes-sigs/kind/releases/download/${KIND_VERSION}/kind-darwin-${ARCH} -O ./kind

On créer le cluster

1
kind create cluster

On importe la config dashboard :

1
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.7.0/aio/deploy/recommended.yaml

On créer un fichier YAML pour notre config (user, token, …) :

1
vi dashboard-users.yaml

Puis on insère les lignes ci-dessous:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
apiVersion: v1
kind: ServiceAccount
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: admin-user
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
- kind: ServiceAccount
  name: admin-user
  namespace: kubernetes-dashboard
---
apiVersion: v1
kind: Secret
metadata:
  name: admin-user
  namespace: kubernetes-dashboard
  annotations:
    kubernetes.io/service-account.name: "admin-user"
type: kubernetes.io/service-account-token

On applique la config :

1
kubectl apply -f dashboard-admin.yaml

On copie notre token :

1
kubectl get secret admin-user -n kubernetes-dashboard -o jsonpath={".data.token"} | base64 -d

On lance le proxy pour le dashboard :

1
kubectl proxy

-> Via l’URL ci-dessous : http://localhost:8001/api/v1/namespaces/kubernetes-dashboard/services/https:kubernetes-dashboard:/proxy/#/login

Une fois terminé, on supprime notre cluster

1
kind delete cluster
Licensed under CC BY-NC-SA 4.0