C'est un logiciel gérant des conteneurs de plusieurs type dont par défaut Docker. Sa force réside sur la méthode de communication via le protocole HTTP. Il est écrit en GO facilitant ainsi son déploiement vu qu'il embarque déjà toutes les dépendances dont-il a besoin.
Mes tests sont effectué sur un hyperviseur KVM dont le dashboard, pourra se faire avec la commande suivante :
sudo ssh -L 127.0.0.1:80:192.168.42.37:30000 virt@192.168.2.25
192.168.42.37 étant l'adresse de l'instance. Ainsi, on pourra s'y rendre en local avec un navigateur http://127.0.0.1
Documentations :
Tout en quelques commandes :
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/ curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/v1.10.0/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin/
Si on l'utilise comme supervisuer avec virtualbox, il n'y a rien d'autre à faire.
Sinon, si l'on souhaite utiliser KVM, alors c'est un peu plus compliqué :
apt install libvirt-clients libvirt-daemon-system usermod -a -G libvirt $(whoami) curl -LO https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-kvm2 && chmod +x docker-machine-driver-kvm2 && sudo mv docker-machine-driver-kvm2 /usr/local/bin/
Enfin on pourra lancer la machine virtuelle avec la commande ci-dessous :
minikube start --vm-driver kvm2
minikube start --vm-driver=virtualbox minikube start --vm-driver=kvm2
kubectl get nodes kubectl get deployments kubectl get service kubectl get pods kubectl get all kubectl describe pod mon-pod kubectl config view kubectl cluster-info dump kubectl get pods -all-namespaces
kubectl run hello-minikube --image=objectiflibre/nginx-demo:blue --port=80 kubectl run my-shell --rm -i --tty --image ubuntu -- bash kubectl apply -f nginx-deployment.yml
kubectl set image deployment/nginx-deployment nginx=objectiflibre/nginx-demo:blue kubectl get rs -w
kubectl rollout undo deployment/nginx-deployment
kubectl exec -it shell-demo -- /bin/bash kubectl expose deployment hello-minikube --type=NodePort kubectl port-forward my-pod 5000:6000 kubectl edit -f deploy.yaml kubectl scale deployment nginx-deployment --replicas=5 ./minikube ssh
kubectl delete deployment hello-minikube kubectl delete pods --all kubectl delete pods --all --grace-period=0 --force kubectl delete pods <pod> --grace-period=0 --force minikube stop minikube delete
kind: Service apiVersion: v1 metadata: name: my-service spec: selector: app: MyApp ports: - name: http protocol: TCP port: 80 targetPort: 9376 externalIPs: - 80.11.12.10