K3S Configuration d'un cluster
Création base de donné
sudo docker run -p 3306:3306 \
--name mysql-k3s \
--restart unless-stopped \
-v /docker/appdata/mysql-k3s/conf:/etc/mysql/conf.d \
-v /docker/appdata/mysql-k3s/logs:/logs \
-v /docker/appdata/mysql-k3s/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=root_password \
-d biarms/mysql:5.7
Confiuguration de la db :
mysql -h 127.0.0.1 -P 3306 -u root -p
load balancer k3s
docker run --name k3s-load --restart unless-stopped -v /docker/appdata/k3s-load/nginx.conf:/etc/nginx/nginx.conf:ro -p 6443:6443 -d nginx
Fichier de coinfiguration nginx.conf :
events {}
stream {
upstream k3s_servers {
server 100.100.35.114:6443;
server 100.89.156.117:6443;
}
server {
listen 6443;
proxy_pass k3s_servers;
}
}
Initialisation de k3s
curl -sfL https://get.k3s.io | sh -s - server \
--token=root_token \
--flannel-iface=tailscale0 \
--datastore-endpoint="mysql://root:root_password@tcp(100.86.89.16:3306)/k3s" \
--tls-san 100.86.89.16
Configuration de Rancher
docker run --name k3s-web -v /docker/appdata/k3s-web/nginx.conf:/etc/nginx/nginx.conf:ro -p 443:443 -d nginx
Dans le fichier nginx.conf :
worker_processes 4;
worker_rlimit_nofile 40000;
events {
worker_connections 8192;
}
stream {
upstream rancher_servers_http {
least_conn;
server 100.100.35.114:80 max_fails=3 fail_timeout=5s;
server 100.89.156.117:80 max_fails=3 fail_timeout=5s;
}
server {
listen 80;
proxy_pass rancher_servers_http;
}
upstream rancher_servers_https {
least_conn;
server 100.100.35.114:443 max_fails=3 fail_timeout=5s;
server 100.89.156.117:443 max_fails=3 fail_timeout=5s;
}
server {
listen 443;
proxy_pass rancher_servers_https;
}
}
kubectl init config
demande d'avoir helm
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
kubectl create namespace cattle-system
kubectl apply --validate=false -f https://github.com/jetstack/cert-manager/releases/download/v1.2.0/cert-manager.crds.yaml
kubectl create namespace cert-manager
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install \
cert-manager jetstack/cert-manager \
--namespace cert-manager \
kubectl get pods --namespace cert-manager
cert manager ok ?