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

Шпаргалка по работе с Nmap

Nmap (Network Mapper) — это инструмент для сканирования и анализа сетей. Он позволяет получать информацию об открытых портах, работающих сервисах и операционных системах на удалённых хостах. Вот небольшая шпаргалка по работе…

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

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

You Missed

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

Шпаргалка по работе с Nmap

Шпаргалка по работе с Nmap

Удаление разделов в Windows консоли (утилита diskpart)

Удаление разделов в Windows консоли (утилита diskpart)

Работа с GPT-разделами в Linux

Работа с GPT-разделами в Linux

Работа с консольной утилитой wsl для управления Windows Subsystem for Linux (Подсистемы Windows для Linux)

Работа с консольной утилитой wsl для управления Windows Subsystem for Linux (Подсистемы Windows для Linux)

Установка и настройка vsftpd в Ubuntu 22.04

Установка и настройка vsftpd в Ubuntu 22.04