From 2bbee050132ef9d949195cb4d238e8da8505d318 Mon Sep 17 00:00:00 2001 From: emelinda Date: Tue, 21 Jul 2026 17:04:18 +0300 Subject: [PATCH] Add `docker-compose.yaml` for local K3s server and agent setup with example `.env` file --- .env.example | 1 + .gitignore | 4 ++- docker-compose.yaml | 64 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 .env.example create mode 100644 docker-compose.yaml diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..099788d --- /dev/null +++ b/.env.example @@ -0,0 +1 @@ +K3S_TOKEN=gVadzB0OtWGDAM9rmlZvHiwfITsP8bxo diff --git a/.gitignore b/.gitignore index ae40261..52fb053 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,6 @@ CLAUDE.md .env tmp -snapshots/* \ No newline at end of file +snapshots/* +./k3s +./k3s-master \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..877839b --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,64 @@ +services: + k3s-server: + image: rancher/k3s:v1.36.2-k3s1 + container_name: k3s-server + command: + - server + - --tls-san=127.0.0.1 + - --tls-san=k3s-server + - --disable=traefik + privileged: true + restart: unless-stopped + environment: + K3S_TOKEN: ${K3S_TOKEN:-supersecrettoken} + K3S_KUBECONFIG_OUTPUT: /output/kubeconfig.yaml + K3S_KUBECONFIG_MODE: "644" + ports: + - "6443:6443" # kube-apiserver + - "80:80" # ingress http + - "443:443" # ingress https + volumes: + - k3s-server-data:/var/lib/rancher/k3s # etcd/state, образы, манифесты — только named volume + - ./k3s:/output # отсюда забираем контекст k8s + tmpfs: + - /run + - /var/run + ulimits: + nproc: 65535 + nofile: + soft: 65535 + hard: 65535 + healthcheck: + test: ["CMD", "kubectl", "get", "--raw=/readyz"] + interval: 10s + timeout: 5s + retries: 30 + start_period: 30s + + k3s-worker: + image: rancher/k3s:v1.36.2-k3s1 + container_name: k3s-worker + command: + - agent + privileged: true + restart: unless-stopped + depends_on: + k3s-server: + condition: service_healthy + environment: + K3S_URL: https://k3s-server:6443 + K3S_TOKEN: ${K3S_TOKEN:-supersecrettoken} + volumes: + - k3s-agent-data:/var/lib/rancher/k3s + tmpfs: + - /run + - /var/run + ulimits: + nproc: 65535 + nofile: + soft: 65535 + hard: 65535 + +volumes: + k3s-server-data: + k3s-agent-data: