<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Elementaire :: Kubernetes Tutoriel</title><link>https://maxime-cls.github.io/kubernetes-tutorial/kubernetes/%C3%A9l%C3%A9mentaire/index.html</link><description/><generator>Hugo</generator><language>fr-FR</language><lastBuildDate>Fri, 26 Jun 2020 15:17:20 +0200</lastBuildDate><atom:link href="https://maxime-cls.github.io/kubernetes-tutorial/kubernetes/%C3%A9l%C3%A9mentaire/index.xml" rel="self" type="application/rss+xml"/><item><title>Ressources et limites</title><link>https://maxime-cls.github.io/kubernetes-tutorial/kubernetes/%C3%A9l%C3%A9mentaire/ressources-limites/index.html</link><pubDate>Fri, 26 Jun 2020 15:17:20 +0200</pubDate><guid>https://maxime-cls.github.io/kubernetes-tutorial/kubernetes/%C3%A9l%C3%A9mentaire/ressources-limites/index.html</guid><description>Prérequis Minikube Install Driver none kubectl Install Stern Docs Release jq Install 3 terminal SSH Assurez-vous que vous êtes dans le bon espace de noms :
kubectl config set-context --current --namespace=myspace Assurez-vous que rien n’est en cours d’exécution dans votre espace de nom :
kubectl get all No resources found in myspace namespace. Déployez d’abord une application sans aucune Requête ni Limite :
Créer un fichier de déploiement
mkdir -p apps/kubefiles/vi apps/kubefiles/myboot-deployment.yml myboot-deployment.yml
apiVersion: apps/v1kind: Deploymentmetadata:labels:app: mybootname: mybootspec:replicas: 1selector:matchLabels:app: myboottemplate:metadata:labels:app: mybootspec:containers:- name: mybootimage: quay.io/rhdevelopers/myboot:v2ports:- containerPort: 8080 Déployer la version 1 de l’applciation myboot</description></item><item><title>Mise à jour permanentes</title><link>https://maxime-cls.github.io/kubernetes-tutorial/kubernetes/%C3%A9l%C3%A9mentaire/mise-a-jour/index.html</link><pubDate>Fri, 26 Jun 2020 15:17:20 +0200</pubDate><guid>https://maxime-cls.github.io/kubernetes-tutorial/kubernetes/%C3%A9l%C3%A9mentaire/mise-a-jour/index.html</guid><description>Prérequis Minikube Install Driver none kubectl Install Stern Docs Release jq Install 3 terminal SSH Assurez-vous que vous êtes dans le bon espace de noms :
kubectl config set-context --current --namespace=myspace Déployez l’application Spring Boot si nécessaire :
kubectl apply -f apps/kubefiles/myboot-deployment-resources-limits.ymlkubectl apply -f apps/kubefiles/myboot-service.yml Terminal 1 : regardez les Pods.
watch kubectl get pods Terminal 2: curl loop the service.
IP=$(minikube ip)PORT=$(kubectl get service/myboot -o jsonpath="{.spec.ports[*].nodePort}") Réaliser une requete sur le service :
curl $IP:$PORT Et lancez le script de la boucle :</description></item><item><title>Liveness &amp; Readiness</title><link>https://maxime-cls.github.io/kubernetes-tutorial/kubernetes/%C3%A9l%C3%A9mentaire/liveness-readiness/index.html</link><pubDate>Fri, 26 Jun 2020 15:17:20 +0200</pubDate><guid>https://maxime-cls.github.io/kubernetes-tutorial/kubernetes/%C3%A9l%C3%A9mentaire/liveness-readiness/index.html</guid><description>Prérequis Minikube Install Driver none kubectl Install Stern Docs Release jq Install 3 terminal SSH Assurez-vous que vous êtes dans le bon espace de noms :
kubectl config set-context --current --namespace=myspace Assurez-vous que rien d’autre n’est déployé :
kubectl get all No resources found in myspace namespace. Déployez une application avec le jeu de sondes Live and Ready :
cat &lt;&lt;EOF | kubectl apply -f -apiVersion: apps/v1kind: Deploymentmetadata:name: mybootspec:replicas: 3selector:matchLabels:app: myboottemplate:metadata:labels:app: mybootenv: devspec:containers:- name: mybootimage: quay.io/rhdevelopers/myboot:v1imagePullPolicy: Alwaysports:- containerPort: 8080resources:requests:memory: "300Mi"cpu: "250m" # 1/4 corelimits:memory: "800Mi"cpu: "1000m" # 1 corelivenessProbe:httpGet:port: 8080path: /initialDelaySeconds: 10periodSeconds: 5timeoutSeconds: 2readinessProbe:httpGet:path: /healthport: 8080initialDelaySeconds: 10periodSeconds: 3EOF Décrivez le déploiement :</description></item><item><title>Configmap</title><link>https://maxime-cls.github.io/kubernetes-tutorial/kubernetes/%C3%A9l%C3%A9mentaire/configmap/index.html</link><pubDate>Fri, 26 Jun 2020 15:17:20 +0200</pubDate><guid>https://maxime-cls.github.io/kubernetes-tutorial/kubernetes/%C3%A9l%C3%A9mentaire/configmap/index.html</guid><description>Prérequis Minikube Install Driver none kubectl Install Stern Docs Release jq Install 3 terminal SSH ConfigMap est la ressource Kubernetes qui vous permet d’externaliser la configuration de votre application.
La configuration d’une application est tout ce qui est susceptible de varier entre les déploiements (staging, production, environnements de développement, etc).
The Twelve-Factor App
Variables d’environnement
MyRESTController.java comprend un petit morceau de code qui s’adresse à l’environnement :
@RequestMapping("/configure")public String configure() {String databaseConn = environment.getProperty("DBCONN","Default");String msgBroker = environment.getProperty("MSGBROKER","Default");String hello = environment.getProperty("GREETING","Default");String love = environment.getProperty("LOVE","Default");return "Configuration: \n"+ "databaseConn=" + databaseConn + "\n"+ "msgBroker=" + msgBroker + "\n"+ "hello=" + hello + "\n"+ "love=" + love + "\n";} Les variables d’environnement peuvent être manipulées au niveau du déploiement. Les modifications entraînent le redéploiement du Pod.</description></item></channel></rss>