veilletechno:kubernetes:k3s

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
veilletechno:kubernetes:k3s [2019/09/14 17:03] – créée madkoveilletechno:kubernetes:k3s [2022/01/15 22:12] (Version actuelle) madko
Ligne 13: Ligne 13:
 Il vaut mieux, pour éviter certaines erreurs ou d'avoir à préciser à chaque fois le fichier de conf de k3s, copier la conf k3s dans le fichier /root/.kube/config Il vaut mieux, pour éviter certaines erreurs ou d'avoir à préciser à chaque fois le fichier de conf de k3s, copier la conf k3s dans le fichier /root/.kube/config
  
-Récupération de helm:+==== Helm v3 ====
  
-curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get +Ne nécessite plus tillerIl suffit de récuperer le binaire et de le déposer dans /usr/local/bin/
-> install-helm.sh+
  
 +==== Helm v2 (deprecated) ====
 +
 +Récupération de helm:
 +
 +<code>
 +curl https://raw.githubusercontent.com/kubernetes/helm/master/scripts/get> install-helm.sh
 sh install-helm.sh sh install-helm.sh
 +
 +</code>
  
 Le binaire helm devrait être installé. On prépare les comptes et ACL: Le binaire helm devrait être installé. On prépare les comptes et ACL:
Ligne 25: Ligne 32:
 kubectl -n kube-system create serviceaccount tiller kubectl -n kube-system create serviceaccount tiller
 kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller kubectl create clusterrolebinding tiller --clusterrole cluster-admin --serviceaccount=kube-system:tiller
 +
 </code> </code>
  
Ligne 31: Ligne 39:
 <code> <code>
 helm init --service-account tiller --tiller-image=jessestuart/tiller helm init --service-account tiller --tiller-image=jessestuart/tiller
 +
 </code> </code>
  
Ligne 67: Ligne 76:
 job.batch/helm-install-traefik   1/          49s        22h   helm         rancher/klipper-helm:v0.1.5   controller-uid=af9453d7-d655-11e9-a0cb-dca632043ab1 job.batch/helm-install-traefik   1/          49s        22h   helm         rancher/klipper-helm:v0.1.5   controller-uid=af9453d7-d655-11e9-a0cb-dca632043ab1
 root@athos:~# root@athos:~#
 +
 </code> </code>
 +
 +===== NFS =====
 +
 +Ajout du repo :
 +
 +<code>
 +helm repo add nfs-subdir-external-provisioner https://kubernetes-sigs.github.io/nfs-subdir-external-provisioner/
 +
 +</code>
 +
 +Deployement du nfs-subdir-external-provisioner :
 +
 +<code>
 +helm install nfs-subdir-external-provisioner nfs-subdir-external-provisioner/nfs-subdir-external-provisioner     --set nfs.server=192.168.3.127 --set nfs.path=/volume1/kubernetes
 +
 +</code>
 +
 +Pour définir la classe nfs-client comme storage class par défaut :
 +
 +<code>
 +kubectl patch storageclass nfs-client -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
 +
 +</code>
 +
 +===== NFS (obsolete) =====
 +
 +Le nfs-client-provisioner est disponible dans le dépôt stable:
 +
 +<code>
 +helm repo add stable https://charts.helm.sh/stable
 +
 +</code>
 +
 +Pour des tests, utilisation d'une classe de stockage utilisant un export NFS (depuis un NAS Synology).
 +
 +<code>
 +helm install nfs --set nfs.server=192.168.2.127 --set nfs.path=/volume1/kubernetes --set image.repository=quay.io/external_storage/nfs-client-provisioner-arm stable/nfs-client-provisioner
 +
 +</code>
 +
 +Pour le fournisseur NFS (DEPRECATED) :
 +
 +<code>
 +kind: Deployment
 +apiVersion: extensions/v1beta1
 +metadata:
 +  name: nfs-client-provisioner
 +spec:
 +  replicas: 1
 +  strategy:
 +    type: Recreate
 +  template:
 +    metadata:
 +      labels:
 +        app: nfs-client-provisioner
 +    spec:
 +      serviceAccountName: nfs-client-provisioner
 +      containers:
 +        - name: nfs-client-provisioner
 +          image: quay.io/external_storage/nfs-client-provisioner-arm:latest
 +          volumeMounts:
 +            - name: nfs-client-root
 +              mountPath: /persistentvolumes
 +          env:
 +            - name: PROVISIONER_NAME
 +              value: exaforge.com/whale
 +            - name: NFS_SERVER
 +              value: 192.168.2.127
 +            - name: NFS_PATH
 +              value: /volume1/kubernetes
 +      volumes:
 +        - name: nfs-client-root
 +          nfs:
 +            server: 192.168.2.127
 +            path: /volume1/kubernetes
 +
 +</code>
 +
 +Pour définir la classe de stockage NFS (DEPRECATED?) :
 +
 +<file>
 +apiVersion: storage.k8s.io/v1
 +kind: StorageClass
 +metadata:
 +  annotations:
 +    storageclass.kubernetes.io/is-default-class: "true"
 +  name: managed-nfs-storage
 +provisioner: exaforge.com/whale
 +reclaimPolicy: Delete
 +volumeBindingMode: Immediate
 +
 +</file>
 +
 +Attention, k3s fournit une classe de stockage par défaut dite "local-path". Il faut avoir qu'une seule classe par défaut :
 +
 +<code>
 +sudo kubectl patch storageclass local-path -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"false"}}}'
 +sudo kubectl patch storageclass nfs-client -p '{"metadata": {"annotations":{"storageclass.kubernetes.io/is-default-class":"true"}}}'
 +
 +</code>
 +
 +Pour valider :
 +
 +<file>
 +kind: PersistentVolumeClaim
 +apiVersion: v1
 +metadata:
 +  name: myclaim
 +  annotations:
 +    volume.beta.kubernetes.io/storage-class: "nfs-client"
 +spec:
 +  accessModes:
 +    - ReadWriteOnce
 +  resources:
 +    requests:
 +      storage: 100Mi
 +
 +</file>
 +
 +====== Mise à jour ======
 +
 +Il suffit de relancer le script d'installation.
 +
  
  • veilletechno/kubernetes/k3s.1568480619.txt.gz
  • Dernière modification : 2019/09/14 17:03
  • de madko