Files
bikinibottom/TuringPi/k3sup.md
2026-02-17 17:42:18 +01:00

121 lines
4.2 KiB
Markdown

#### Installation de kubectl
```bash
sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl gnupg
sudo mkdir -p -m 755 /etc/apt/keyrings
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.33/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
sudo chmod 644 /etc/apt/keyrings/kubernetes-apt-keyring.gpg
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.33/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo chmod 644 /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubectl
```
#### Installation de k3sup :
```bash
# Avec curl
curl -sLS https://get.k3sup.dev | sh
sudo install k3sup /usr/local/bin/
# Ou téléchargement direct depuis GitHub
wget https://github.com/alexellis/k3sup/releases/download/0.13.11/k3sup
chmod +x k3sup
sudo mv k3sup /usr/local/bin/
```
#### Configuration sudo sans mot de passe :
```bash
# Ajout de l'utilisateur au groupe sudo
sudo usermod -aG sudo pleb
# Configuration pour éviter la saisie de mot de passe
echo "pleb ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/pleb
```
#### Premier déploiement :
```bash
# Installation du master node
k3sup install --ip 192.168.1.14 --user pleb --ssh-key $HOME/.ssh/bikiniBottom
# Ajout des worker nodes
k3sup join --ip 192.168.1.13 --server-ip 192.168.1.14 --user pleb --ssh-key $HOME/.ssh/bikiniBottom
k3sup join --ip 192.168.1.16 --server-ip 192.168.1.14 --user pleb --ssh-key $HOME/.ssh/bikiniBottom
# k3sup join --ip 192.168.1.19 --server-ip 192.168.1.14 --user pleb --ssh-key $HOME/.ssh/bikiniBottom
```
#### Vérification du cluster :
```bash
# Export du kubeconfig
export KUBECONFIG=/home/julien/kubeconfig
# Vérification des nœuds
kubectl get nodes -o wide
# Check des pods système
kubectl get pods -n kube-system
```
#### Validation :
```bash
kubectl get nodes
NAME STATUS ROLES AGE VERSION
gary Ready <none> 77s v1.34.4+k3s1
sandy Ready control-plane 39m v1.34.4+k3s1
sheldon Ready <none> 48s v1.34.4+k3s1
```
### Helm
> On sandy
```bash
curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh
helm version
```
#### Headlamp
```bash
# first add our custom repo to your local helm repositories
helm repo add headlamp https://kubernetes-sigs.github.io/headlamp/
# now you should be able to install headlamp via helm
helm install bb-headlamp headlamp/headlamp --namespace kube-system
```
```
NAME: bb-headlamp
LAST DEPLOYED: Tue Feb 17 17:17:03 2026
NAMESPACE: kube-system
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
```
1. Get the application URL by running these commands:
```bash
export POD_NAME=$(kubectl get pods --namespace kube-system -l "app.kubernetes.io/name=headlamp,app.kubernetes.io/instance=bb-headlamp" -o jsonpath="{.items[0].metadata.name}")
export CONTAINER_PORT=$(kubectl get pod --namespace kube-system $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
echo "Visit http://127.0.0.1:8080 to use your application"
kubectl --namespace kube-system port-forward $POD_NAME 8080:$CONTAINER_PORT
```
2. Get the token using
```bash
kubectl create token bb-headlamp --namespace kube-system
```
```
eyJhbGciOiJSUzI1NiIsImtpZCI6InJJMkRkd2MzMUw5cDR0WHY5bnNHRHpjQ0kwdmNuOHdWSTZValZvTWlLZlkifQ.eyJhdWQiOlsiaHR0cHM6Ly9rdWJlcm5ldGVzLmRlZmF1bHQuc3ZjLmNsdXN0ZXIubG9jYWwiLCJrM3MiXSwiZXhwIjoxNzcxMzQ4Nzk5LCJpYXQiOjE3NzEzNDUxOTksImlzcyI6Imh0dHBzOi8va3ViZXJuZXRlcy5kZWZhdWx0LnN2Yy5jbHVzdGVyLmxvY2FsIiwianRpIjoiODAyZWVhNGYtN2EwNC00ZjQyLTgyNTUtYTVhYzQ0ZTBmZWI3Iiwia3ViZXJuZXRlcy5pbyI6eyJuYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsInNlcnZpY2VhY2NvdW50Ijp7Im5hbWUiOiJiYi1oZWFkbGFtcCIsInVpZCI6ImYxMmY0MzM4LWYxZDgtNGYwNy1iYTAzLTU5NTc1MWIzNGZhNCJ9fSwibmJmIjoxNzcxMzQ1MTk5LCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06YmItaGVhZGxhbXAifQ.UySnaWZ_dIqPGmFPcOgvDi7vvUR9S728ifJChFtsr577TyY9rz6h1CrRQuTXVpfdFbh2jHLpP6QSOvyQkKQX6CYvH-YVZRSTr6v_StG-doKlKWdNpirStGPxQSnkDq3xG0weeUt7xhObSj91oKqylekAx6MMu2miGHTere8zvaLC1NVcu8pgJlXaDHyMQnAyLy6nACu6fH7g4Yvkdl-VcjeII_JtoQQMPXl8wtl25PsDU0tHHQ3K2IB4qyFEwTPVDoLC_jdwgd_5V-Cy82wdGP403dF-6tQiMoniDRO_NiClVJBMEh5r-spKBVF2mMaNknFHzVK8ANQhWyJKFeDAyA
```