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

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

Настройка взаимодействия RED ADM и Windows Active Directory

Сегодня проведем несколько экспериментов по настройке взаимодействия RED ADM и Windows Active Directory. Есть несколько способов настройки доверия для упрощения миграции с решений Microsoft на Российское ПО и сегодня их…

Подробная инструкция по написанию YAML‑файлов для Docker Compose

Так как на севере делать абсолютно нечего, то я продолжаю заниматься саморазвитием 🙂 На этой неделе вспоминаю и углубляю свои знания в Docker. Лучший способ запомнить тему, это вести конспект…

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

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

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

Настройка взаимодействия RED ADM и Windows Active Directory

Настройка взаимодействия RED ADM и Windows Active Directory

Подробная инструкция по написанию YAML‑файлов для Docker Compose

Подробная инструкция по написанию YAML‑файлов для Docker Compose

Установка основного контроллера домена на базе REDADM

Установка основного контроллера домена на базе REDADM

zVirt работа с шаблонами виртуальных машин

zVirt работа с шаблонами виртуальных машин

Подробная инструкция по работе с томами (volumes) в Docker

Подробная инструкция по работе с томами (volumes) в Docker

Сетевые возможности Docker

Сетевые возможности Docker