Немного заметок по 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

Похожие записи

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

В этой статье мы рассмотрим пошаговую настройку кластера Kubernetes на Ubuntu 24.04 с тремя узлами: один мастер (который также может запускать пользовательские поды) и два рабочих узла. Мы настроим PersistentVolume…

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

В рамках создания собственного кластера Kubernetes я поднаял кластер Mysql который работает в режиме Master-Slave и Slave-узлы соответственно работают в режиме read-only, а мастер в read-write. Соответственно мне нужен балансировщик…

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

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

Читать еще статьи

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Настройка кластера Kubernetes в Ubuntu Linux 24.04: три узла (один мастер с возможностью запуска пользовательских подов, PVC в каталоге на хосте, сеть на Calico)

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Инструкция по установке и настройке ProxySQL в Ubuntu 24.04

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по настройке UFW в Ubuntu: от основ до продвинутых правил

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Полное руководство по развертыванию GlusterFS в Ubuntu Linux: от подготовки до тестирования производительности

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Подробная инструкция по настройке кластера из трёх серверов MySQL на Ubuntu 24.04

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования

Полное руководство по настройке NFS-клиента в Ubuntu Linux: от установки до автоматического монтирования