# KubeSolo

# Установка

# Пример начальной установки

```bash
curl -sfL https://get.kubesolo.io | sudo sh -
```

Получили примерно следующее:

```bash
🔍 Detected glibc system
🔍 Detected init system: systemd
🔍 Detected environment: standard
🔍 Checking for Docker prerequisite conflicts...
✅ No Docker installation detected
🔍 Checking hostname RFC 1123 compliance...
✅ Hostname 'mis' is RFC 1123 compliant
🔍 Checking iptables xt_comment module support...
✅ iptables with xt_comment module support verified
🔍 Checking for required cgroups controllers...
✅ All required cgroups v2 controllers are available: cpuset cpu io memory hugetlb pids rdma misc dmem
🔍 Checking for running KubeSolo processes...
✅ No running KubeSolo processes found
🔍 Checking for processes holding KubeSolo ports...
✅ No KubeSolo processes found holding ports
🔍 Checking for file conflicts...
✅ No file conflicts detected
🔄 Installing kubesolo v1.1.7 for systemd init system...
📥 Downloading kubesolo v1.1.7...
📦 Extracting kubesolo...
📝 Installing binary...
📝 Setting up kubesolo service...
Created symlink /etc/systemd/system/multi-user.target.wants/kubesolo.service → /etc/systemd/system/kubesolo.service.
✅ kubesolo service created and started with systemd
📋 Service status and logs:
   Status: systemctl status kubesolo
   Logs: journalctl -u kubesolo -f
ℹ️  kubectl not found, skipping kubeconfig merge
💡 To use kubectl, please install it first: https://kubernetes.io/docs/tasks/tools/install-kubectl/
📁 Kubeconfig location: /var/lib/kubesolo/pki/admin/admin.kubeconfig
✅ kubesolo installation completed!
```

Если у нас Proxmox LXC, то KebeSolo не поднимется так как отсутствует /dev/kmsg. Чтобы это вылечить

Добавляем для запуска kubelet:

```bash
# делаем симлинк (слетит после рестарта)
ln -s /dev/console /dev/kmsg
# чтобы сделать постоянным - запускаем crontab -e и добавляем строку:
@reboot ln -s /dev/console /dev/kmsg
```

Лечим kube-proxy:

<p class="callout danger">Так и не удалось запустить KubeSolo в LXC т.к. встроенные kebe-proxy упорно пытается поменят ьпараметры и на этом все помирает....</p>

# Поднимаем Cilium

Наша задача вывести наружу HTTP и GRPC трафик с нашего сервиса.

Будем устанавливать cilium из helm репозитория:

<p class="callout info">На момент написания статьи имеем версию 1.20.0</p>

```bash
helm repo add cilium https://helm.cilium.io/
helm repo update
```

Получаем конфигурацию для дальнейшей правки:

```bash
helm show values cilium/cilium > values-cilium.yaml 
```

Файл получился порядка 180К - жесть полная. Поэтому вычистим максимально и будет последовательно добавлять нужные значения. Получаем первый рабочий вариаинт:

Установка с нашими параметрами:

```bash
helm upgrade --install cilium cilium/cilium --namespace kube-system -f values-cilium.yaml
```