mirror of
https://github.com/batonogov/learn-devops.git
synced 2025-11-29 00:33:02 +00:00
committed by
GitHub
parent
302ffdd5f5
commit
3071c7b38a
2
.gitignore
vendored
2
.gitignore
vendored
@@ -80,3 +80,5 @@ go.work
|
|||||||
.DS_Store
|
.DS_Store
|
||||||
ansible/secrets
|
ansible/secrets
|
||||||
main
|
main
|
||||||
|
talos/*.yaml
|
||||||
|
talosconfig
|
||||||
|
|||||||
114
talos/README.md
Normal file
114
talos/README.md
Normal file
@@ -0,0 +1,114 @@
|
|||||||
|
# Talos
|
||||||
|
|
||||||
|
## Что такое Талос?
|
||||||
|
|
||||||
|
Talos - это дистрибутив Linux, оптимизированный для контейнеров;
|
||||||
|
переосмысление Linux для распределенных систем, таких как Kubernetes.
|
||||||
|
Разработанный, чтобы быть максимально минимальным, сохраняя при этом практичность.
|
||||||
|
По этим причинам Talos имеет ряд уникальных для него особенностей:
|
||||||
|
|
||||||
|
- неизменяесый
|
||||||
|
- атомарный
|
||||||
|
- эфимерный
|
||||||
|
- минималистичный
|
||||||
|
- по умолчанию он безопасен
|
||||||
|
- управляется с помощью одного декларативного файла конфигурации и gRPC API
|
||||||
|
- Talos может быть развернут в контейнерных, облачных, виртуализированных и голых металлических платформах.
|
||||||
|
|
||||||
|
## Почему Талос
|
||||||
|
|
||||||
|
Имея меньше, Талос предлагает больше. Безопасность. Эффективность. Устойчивость. Последовательность.
|
||||||
|
|
||||||
|
Все эти области улучшаются просто за счет того, что у них меньше.
|
||||||
|
|
||||||
|
## Загрузка Talos на голом металле с ISO
|
||||||
|
|
||||||
|
Talos не устанавливается на диск при загрузке из ISO до тех пор, пока не будет применена конфигурация машины.
|
||||||
|
|
||||||
|
## Настройка Talos Linux
|
||||||
|
|
||||||
|
Определяем переменную с IP адресом Control Plane узла:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
export TALOS_CONTROL_PLANE_IP=192.168.1.48
|
||||||
|
```
|
||||||
|
|
||||||
|
Вот так можно посмотреть список дисков на узле:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
talosctl -n $TALOS_CONTROL_PLANE_IP disks --insecure
|
||||||
|
```
|
||||||
|
|
||||||
|
Генерируем конфиг
|
||||||
|
|
||||||
|
```sh
|
||||||
|
talosctl gen config --kubernetes-version 1.31.1 talos https://$TALOS_CONTROL_PLANE_IP:6443 --config-patch @patch.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
Применяем конфигурацию
|
||||||
|
|
||||||
|
```sh
|
||||||
|
talosctl apply-config --insecure -n $TALOS_CONTROL_PLANE_IP --file ./controlplane.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
После перезапуска Controls Plane узла необходимо инициализировать etcd:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
talosctl bootstrap --nodes $TALOS_CONTROL_PLANE_IP --endpoints $TALOS_CONTROL_PLANE_IP --talosconfig=./talosconfig
|
||||||
|
```
|
||||||
|
|
||||||
|
Получаем kube config:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
talosctl kubeconfig ~/.kube/config --nodes $TALOS_CONTROL_PLANE_IP --endpoints $TALOS_CONTROL_PLANE_IP --talosconfig ./talosconfig
|
||||||
|
```
|
||||||
|
|
||||||
|
Добавляем рабочий узел:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
export TALOS_WORKER_1_IP=192.168.1.142
|
||||||
|
talosctl apply-config --insecure -n $TALOS_WORKER_1_IP --file ./worker.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
## Настройка Cilium
|
||||||
|
|
||||||
|
Добавляем репозиторий:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
helm repo add cilium https://helm.cilium.io/
|
||||||
|
helm repo update
|
||||||
|
```
|
||||||
|
|
||||||
|
Устанавливаем Cilium:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
helm upgrade \
|
||||||
|
--install \
|
||||||
|
cilium \
|
||||||
|
cilium/cilium \
|
||||||
|
--version 1.16.3 \
|
||||||
|
--namespace kube-system \
|
||||||
|
--set ipam.mode=kubernetes \
|
||||||
|
--set kubeProxyReplacement=true \
|
||||||
|
--set securityContext.capabilities.ciliumAgent="{CHOWN,KILL,NET_ADMIN,NET_RAW,IPC_LOCK,SYS_ADMIN,SYS_RESOURCE,DAC_OVERRIDE,FOWNER,SETGID,SETUID}" \
|
||||||
|
--set securityContext.capabilities.cleanCiliumState="{NET_ADMIN,SYS_ADMIN,SYS_RESOURCE}" \
|
||||||
|
--set cgroup.autoMount.enabled=false \
|
||||||
|
--set cgroup.hostRoot=/sys/fs/cgroup \
|
||||||
|
--set k8sServiceHost=localhost \
|
||||||
|
--set k8sServicePort=7445
|
||||||
|
```
|
||||||
|
|
||||||
|
## Metrics Server
|
||||||
|
|
||||||
|
Устанавливаем Metrics Server
|
||||||
|
|
||||||
|
```sh
|
||||||
|
helm upgrade \
|
||||||
|
--namespace kube-system \
|
||||||
|
--install metrics-server metrics-server/metrics-server \
|
||||||
|
--set args={--kubelet-insecure-tls}
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
talosctl upgrade-k8s --nodes $TALOS_CONTROL_PLANE_IP --to 1.31.2
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user