72 lines
2.2 KiB
Markdown
72 lines
2.2 KiB
Markdown
# Настройка MetalLB для K3s с одним внешним IP-адресом
|
||
|
||
## Шаги по настройке
|
||
|
||
1. **Проверьте статус Traefik и MetalLB:**
|
||
```bash
|
||
kubectl get svc -n kube-system traefik
|
||
kubectl get pods -n metallb-system
|
||
```
|
||
|
||
2. **Установка MetalLB (если не установлен):**
|
||
```bash
|
||
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/main/config/manifests/metallb-native.yaml
|
||
```
|
||
|
||
3. **Создайте файл конфигурации `metallb-config.yaml` с указанием внешнего IP-адреса:**
|
||
```yaml
|
||
apiVersion: metallb.io/v1beta1
|
||
kind: IPAddressPool
|
||
metadata:
|
||
name: my-single-ip-pool
|
||
namespace: metallb-system
|
||
spec:
|
||
addresses:
|
||
- <ваш-внешний-IP-адрес> # Укажите здесь ваш внешний IP-адрес
|
||
---
|
||
apiVersion: metallb.io/v1beta1
|
||
kind: L2Advertisement
|
||
metadata:
|
||
name: my-l2-advertisement
|
||
namespace: metallb-system
|
||
spec: {}
|
||
```
|
||
|
||
Примените конфигурацию:
|
||
```bash
|
||
kubectl apply -f metallb-config.yaml
|
||
```
|
||
|
||
4. **Создайте сервис типа LoadBalancer:**
|
||
Создайте файл `service.yaml` со следующим содержимым:
|
||
```yaml
|
||
apiVersion: v1
|
||
kind: Service
|
||
metadata:
|
||
name: external-service
|
||
spec:
|
||
selector:
|
||
app: my-app
|
||
ports:
|
||
- protocol: TCP
|
||
port: 80
|
||
targetPort: 80
|
||
type: LoadBalancer
|
||
```
|
||
|
||
Примените манифест:
|
||
```bash
|
||
kubectl apply -f service.yaml
|
||
```
|
||
|
||
5. **Проверьте, что сервис получил внешний IP:**
|
||
```bash
|
||
kubectl get svc external-service
|
||
```
|
||
|
||
## Заметки
|
||
- Убедитесь, что ваш сервер позволяет доступ к указанному IP-адресу на соответствующих портах.
|
||
- IP-адрес должен быть статическим и доступным для использования.
|
||
|
||
Следуя этим шагам, вы настроите MetalLB для работы с указанным внешним IP-адресом в кластере K3s.
|