mod: Перенос контейнера Docker в k3s......
This commit is contained in:
@@ -261,3 +261,98 @@ NAME ENDPOINTS AGE
|
|||||||
sudo kubectl describe certificate -n <NAME-SPACE> <SERVICE-NAME>-tls
|
sudo kubectl describe certificate -n <NAME-SPACE> <SERVICE-NAME>-tls
|
||||||
sudo kubectl get secret -n <NAME-SPACE> <SERVICE-NAME>-tls
|
sudo kubectl get secret -n <NAME-SPACE> <SERVICE-NAME>-tls
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## UPD
|
||||||
|
|
||||||
|
Почему-то SSL-сертификат Let's Encrypt через положенный срок не перевыпустился. Для начала выяснилось, что на
|
||||||
|
моем роутере перестал работать NAT-loopback, и внутрення проверка Certbot перестала работать. Похоже роутер получил
|
||||||
|
обновление прошивки, и все сломалось. В результате DNS кластера (coredns) разрешал домен во внешний IP-адрес роутера,
|
||||||
|
а не во внутренний IP-адрес кластера (VIP через keepalived), а без NAT-loopback запросы к домену не доходили до
|
||||||
|
кластера.
|
||||||
|
|
||||||
|
Как чинил:
|
||||||
|
|
||||||
|
Во-первых, руками поменял на всех узлах кластера (включая роутер) в файле `/etc/resolv.conf` IP-адрес DNS.
|
||||||
|
Обновление испортило и DHCP-сервер на роутере, и он стал раздавать свой IP-адреса как DNS-сервер, вместо моего
|
||||||
|
домшнего DNS-сервера (работат на Synology NAS).
|
||||||
|
|
||||||
|
Во-вторых, в кластере k3s обновил конфигурацию coredns:
|
||||||
|
```bash
|
||||||
|
kubectl edit configmap -n kube-system coredns
|
||||||
|
```
|
||||||
|
|
||||||
|
Отчего-то там было навернуты хосты 'hosts /etc/coredns/NodeHosts` внутри `.:53 ` блока, и это мешало. В результате
|
||||||
|
получалось следующее:
|
||||||
|
```yaml
|
||||||
|
# Please edit the object below. Lines beginning with a '#' will be ignored,
|
||||||
|
# and an empty file will abort the edit. If an error occurs while saving this file will be
|
||||||
|
# reopened with the relevant failures.
|
||||||
|
#
|
||||||
|
apiVersion: v1
|
||||||
|
data:
|
||||||
|
Corefile: |
|
||||||
|
.:53 {
|
||||||
|
errors
|
||||||
|
health
|
||||||
|
ready
|
||||||
|
kubernetes cluster.local in-addr.arpa ip6.arpa {
|
||||||
|
pods insecure
|
||||||
|
fallthrough in-addr.arpa ip6.arpa
|
||||||
|
}
|
||||||
|
prometheus :9153
|
||||||
|
forward . /etc/resolv.conf
|
||||||
|
cache 30
|
||||||
|
loop
|
||||||
|
reload
|
||||||
|
loadbalance
|
||||||
|
import /etc/coredns/custom/*.override
|
||||||
|
}
|
||||||
|
import /etc/coredns/custom/*.server
|
||||||
|
...
|
||||||
|
...
|
||||||
|
...
|
||||||
|
```
|
||||||
|
|
||||||
|
После сохранения конфигурации манифет coredns (т.к. его редактируем пряма в кластере) применяется автоматически.
|
||||||
|
После пеускаем coredns:
|
||||||
|
```bash
|
||||||
|
kubectl rollout restart deployment -n kube-system coredns
|
||||||
|
```
|
||||||
|
|
||||||
|
Проверяем логи:
|
||||||
|
```bash
|
||||||
|
kubectl logs -n kube-system -l k8s-app=kube-dns
|
||||||
|
```
|
||||||
|
|
||||||
|
Проверяем статусы подов CoreDNS:
|
||||||
|
```shell
|
||||||
|
kubectl get pods -n kube-system -l k8s-app=kube-dns -o wide
|
||||||
|
```
|
||||||
|
|
||||||
|
Поды должны быть в статусе `Running`:
|
||||||
|
```text
|
||||||
|
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
|
||||||
|
coredns-646d9c4784-wsbbg 1/1 Running 0 58m 10.42.2.127 opi5plus-1 <none> <none>
|
||||||
|
coredns-646d9c4784-z5zqv 1/1 Running 0 58m 10.42.0.125 opi5 <none> <none>
|
||||||
|
```
|
||||||
|
|
||||||
|
И наконец, в-третьих, обновил сертификат Let's Encrypt. Сначала удалил старый сертификат и секрет:
|
||||||
|
```bash
|
||||||
|
kubectl delete certificate -n <NAME-SPACE> <SERVICE-NAME>-tls
|
||||||
|
kubectl delete secret -n <NAME-SPACE> <SERVICE-NAME>-tls
|
||||||
|
```
|
||||||
|
|
||||||
|
И снова применил манифест с сертификатом:
|
||||||
|
```bash
|
||||||
|
kubectl apply -f ~/k3s/<SERVICE-NAME>/<SERVICE-NAME>.yaml
|
||||||
|
```
|
||||||
|
|
||||||
|
Проверяем, что сертификат обновился:
|
||||||
|
```bash
|
||||||
|
kubectl describe certificate -n <NAME-SPACE> <SERVICE-NAME>-tls
|
||||||
|
kubectl get secret -n <NAME-SPACE> <SERVICE-NAME>-tls
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user