Для настройки Kubernetes (и kubeadm) для работы через прокси-сервер, вы можете выполнить следующие шаги:
### 1. Настройте переменные среды для контейнеризованного окружения
Вы уже добавили настройки прокси в `override.conf` для `containerd`. Убедитесь, что эти настройки правильно подхватываются, и перезапустите службу `containerd`:
```bash
sudo systemctl daemon-reload
sudo systemctl restart containerd
```
### 2. Настройте переменные окружения для kubelet
Чтобы kubelet также использовал настройки прокси, создайте или отредактируйте файл `kubelet-env.conf`:
```bash
sudo mkdir -p /etc/systemd/system/kubelet.service.d
sudo nano /etc/systemd/system/kubelet.service.d/override.conf
```
Добавьте следующие строки в файл:
```ini
[Service]
Environment="HTTP_PROXY=http://172.16.8.21:3128"
Environment="HTTPS_PROXY=http://172.16.8.21:3128"
Environment="NO_PROXY=localhost,127.0.0.1,172.16.8.0/24"
```
### 3. Перезапустите kubelet
После настройки прокси для kubelet, перезапустите его:
```bash
sudo systemctl daemon-reload
sudo systemctl restart kubelet
```
### 4. Настройка kubectl
Если вы будете использовать `kubectl`, вам также могут понадобиться прокси-переменные среды для вашей пользовательской сессии. Вы можете добавить следующие строки в файл `~/.bashrc` или `~/.bash_profile`:
```bash
export HTTP_PROXY="http://172.16.8.21:3128"
export HTTPS_PROXY="http://172.16.8.21:3128"
export NO_PROXY="localhost,127.0.0.1,172.16.8.0/24"
```
Примените изменения:
```bash
source ~/.bashrc
```
### 5. Применение настроек kubeadm
Когда вы выполните `kubeadm init`, убедитесь, что вы запускаете его с учетом прокси-серверов. В некоторых случаях может потребоваться указать параметры при запуске, либо настроить файл `/etc/kubernetes/manifests/kube-apiserver.yaml`, чтобы включить настройки прокси.
### 6. Настройки для загрузки образов
Если вы все равно сталкиваетесь с проблемами загрузки образов, вы можете проверить логи `containerd`:
```bash
sudo journalctl -u containerd
```
или логи kubelet:
```bash
sudo journalctl -u kubelet
```
Также попробуйте вручную загрузить образы через `ctr` (интерфейс командной строки для containerd) с учетом прокси, чтобы убедиться, что проблемы связаны с настройкой прокси, а не с самим `kubeadm`.
### 7. Ограничения
Обратите внимание, что некоторые образы могут быть заблокированы на вашем прокси-сервере. Убедитесь, что ваш прокси позволяет работать с необходимыми реестрами образов (например, Docker Hub, ghcr.io и т.д.) и что для них открыты соответствующие порты.
С учетом всех этих шагов, ваш кластер Kubernetes должен успешно работать через прокси-сервер.