Разворачиваем Kubernetes (k3s) кластер с ArgoCD
Заметка про разворачивание домашнего кластера Kubernetes (k3s) на одной ноде. И ArgoCD для GitOps подхода к управлению деплоями и ресурсами в кластере.
Исходные данные - одна нода(ВМка) с Ubuntu 24.04
Характеристики ноды 10 ядер ЦПУ / 10Гб ОЗУ
Установка Kubernetes (k3s)
Для одного узла — идеально подходит k3s (облегчённый Kubernetes от Rancher):
1
curl -sfL https://get.k3s.io | sh -
После установки проверяем:
1
sudo kubectl get nodes
Kubeconfig лежит в /etc/rancher/k3s/k3s.yaml
Скопируем локально для управления с ПК через Lens(или любой другой IDE для кубера):
1
sudo cat /etc/rancher/k3s/k3s.yaml
Установка Argo CD
1
2
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
Создадим IngressRoute в кластере k3s для доступа в интерфейс ArgoCD
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: argocd-server
namespace: argocd
spec:
entryPoints:
- websecure
routes:
- kind: Rule
match: Host(`argocd.local`)
priority: 10
services:
- name: argocd-server
port: 80
- kind: Rule
match: Host(`argocd.local`) && Header(`Content-Type`, `application/grpc`)
priority: 11
services:
- name: argocd-server
port: 80
scheme: h2c
tls:
certResolver: default
Вместо argocd.local свой поддомен ВМки при наличии, либо оставляем argocd.local и прописываем в hosts
https://argo-cd.readthedocs.io/en/stable/operator-manual/ingress/#traefik-v30
Теперь веб-морда ArgoCD доступна: https://argocd.local
Логин: admin
Пароль:
1
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d
На этом пока все. Дальше поднимем свой GitLab для хранения кода и манифестов для ArgoCD.