Contexte
Kubernetes est un orchestrateur open source de containers compatibles Docker et rkt. L’orchestrateur permet de déployer, gérer et étendre horizontalement des containers sur des noeuds portant Docker ou rkt.
Pour plus d’informations Kubernetes
Installation des prérequis
Télécharger et installer Virtualbox, voir l’article Virtualbox
Installation de minikube
OSX
curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.23.0/minikube-darwin-amd64 && chmod +x minikube && sudo mv -f minikube /usr/local/bin/
Linux
curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.23.0/minikube-linux-amd64 && chmod +x minikube && sudo mv -f minikube /usr/local/bin/
Installation de kubectl
OSX
curl -LO https://storage.googleapis.com/kubernetes-release/release/curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt
/bin/darwin/amd64/kubectl && chmod +x kubectl && sudo mv -f kubectl /usr/local/bin
Linux
curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv -f kubectl /usr/local/bin
Vérifier les installations
Lancer un shell puis executer
virtualbox --help | awk '/Oracle/{ print $5 }' # 5.1.28 minikube version # minikube version: v0.22.3
Créer une machine virtuelle avec minikube
minikube start --vm-driver=virtualbox # Starting local Kubernetes v1.7.5 cluster... # Starting VM... # Getting VM IP address... # Moving files into cluster... # Setting up certs... # Connecting to cluster... # Setting up kubeconfig... # Starting cluster components... # Kubectl is now configured to use the cluster. minikube status # minikube: Running # cluster: Running # kubectl: Correctly Configured: pointing to minikube-vm at 192.168.99.100
Exemple de création d’un pod
kubectl run jenkins --image=jenkins --port=8080 # deployment "jenkins" created kubectl get deployment # NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE # jenkins 1 1 1 0 39s kubectl get pods # NAME READY STATUS RESTARTS AGE # jenkins-3846303548-q3kvn 0/1 ContainerCreating 0 1m kubectl expose deployment jenkins --type=NodePort # service "jenkins" exposed
Patienter jusqu’au résultat « STATUS » à « Running » en répétant la requête kubectl get pods
Récupérer l’url du pod
echo $(minikube service jenkins --url) # http://192.168.99.102:30490
Accéder au portail via l’URL
Supprimer le pod
kubectl delete deployment jenkins # deployment "jenkins" deleted
Supprimer la machine virtuelle
minikube delete # Deleting local Kubernetes cluster... # Machine deleted.