Немного заметок по Kubernetes

Оцените статью

В процессе запуска очередного небольшого проекта на kubernetes у меня накопилось немного небольших заметок которыми я с радостью с вами поделюсь. Возможно они кому-то и пригодятся.

Резервное копирование баз данных Mysql сервера запущенного в POD-е

В принципе так можно и любую команду выполнить.

$ kubectl exec mysql-787fcf954-z5vk2 -- mysqldump --all-databases --password=xxxPasswordxxx > ./base_mysql_dump.sql

Создание секрета для хранения ключей и сертификатов для https Ingress

# kubectl create secret tls prod-pikur-art --key  /etc/letsencrypt/live/pikur.art/privkey.pem --cert /etc/letsencrypt/live/pikur.art/fullchain.pem --namespace pikur-art-web

В виде Yaml-описания.

apiVersion: v1
data:
  tls.crt: Base64 cert
  tls.key: Base64.key
kind: Secret
metadata:
  name: prod-pikur-art
  namespace: pikur-art-web
type: kubernetes.io/tls

Модификация сервисов LoadBalancer и Ingress для работы с несколькими внешними адресами

Ingress

# kubectl patch svc ingress-nginx-controller -n ingress-nginx -p '{"spec": {"type": "LoadBalancer", "externalIPs":["185.173.93.43","185.133.42.139"]}}'

NodePort

# kubectl patch svc postgresql-nodeport -n databases -p '{"spec": {"type": "LoadBalancer", "externalIPs":["185.173.93.43","185.133.42.139"]}}'

Копирование файла с хоста в POD

# kubectl cp ./dump.sql mysql-5d56cdff4b-vms9j:/tmp/

Проброс портов

Проброс портов до POD-а

$ kubectl port-forward pods/wordpress-5f77f77f6d-6l9mj 8080:80

Проброс портов до сервиса

$ kubectl port-forward service/service-wordpress 8080:80

Внутренняя DNS-адресация в рамках кластера Kubernetes

Внутри пода смотрим какие DNS-имена предоставляет наш кластер.

# cat /etc/resolv.conf 
search anton-c-web-stage.svc.cluster.local svc.cluster.local cluster.local
nameserver 10.96.0.10
options ndots:5

Для доступа к сервису service-wordpress в namespace anton-c-web-stage получается адрес:

# nslookup service-wordpress.anton-c-web-stage.svc.cluster.local

Server:         10.96.0.10
Address:        10.96.0.10#53

Name:   service-wordpress.anton-c-web-stage.svc.cluster.local
Address: 10.105.154.136
;; Got recursion not available from 10.96.0.10

Для доступа к сервису mysql в namespace databases получается адрес:

# nslookup mysql.databases.svc.cluster.local

Server:         10.96.0.10
Address:        10.96.0.10#53

Name:   mysql.databases.svc.cluster.local
Address: 10.102.93.55
;; Got recursion not available from 10.96.0.10

Пример Ingress-контроллера

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: wordpress-ingress
  namespace: anton-c-web-stage
  annotations:
    nginx.ingress.kubernetes.io/proxy-buffer-size: "32k"
    nginx.ingress.kubernetes.io/affinity: "cookie"
    nginx.ingress.kubernetes.io/rewrite-target: /
    nginx.ingress.kubernetes.io/proxy-connect-timeout: "3600"
    nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
    nginx.ingress.kubernetes.io/proxy-body-size: "512m"
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/force-ssl-redirect: "true"
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
spec:
  tls:
  - secretName:  prod-anton-c
  rules:
  - host: "stage.anton-c.ru"
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: service-wordpress
            port:
              number: 80

Related Posts

Работа с файлами дисков виртуальных машин qcow2 (копирование, сжатие, конвертация и т.п.)

Так-как файлы виртуальных машин формата qcow2 это не совсем обычные файлы, а так называемые sparced-файлы (разряженные), то и подход при работе с ними несколько отличается. Если вы создали виртуальную машину…

План создания удостоверяющего центра (УЦ) PKI на базе Red OS

Так как в планах проекта числится развертывание удостоверяющего центра (УЦ) PKI на базе Red OS, то я заранее решил набросать план действий как будем это разорачивать и какие инструменты использовать.…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

You Missed

Работа с файлами дисков виртуальных машин qcow2 (копирование, сжатие, конвертация и т.п.)

Работа с файлами дисков виртуальных машин qcow2 (копирование, сжатие, конвертация и т.п.)

План создания удостоверяющего центра (УЦ) PKI на базе Red OS

План создания удостоверяющего центра (УЦ) PKI на базе Red OS

Терминальный сервер в Linux на базе xrdp

Терминальный сервер в Linux на базе xrdp

Использование pg_probackup для резервного копирования баз данных Postgresql (локально)

Использование pg_probackup для резервного копирования баз данных Postgresql (локально)

Ввод рабочей станции РЕД ОС в IPA-домен

Ввод рабочей станции РЕД ОС в IPA-домен

WEB-интерфейс для удаленного администрирования Centos/РЕД ОС

WEB-интерфейс для удаленного администрирования Centos/РЕД ОС