• Latest
  • Trending
  • All
  • News
  • Business
  • Politics
  • Science
  • World
  • Lifestyle
  • Tech

Kubernetes Ingress глазами новичка

April 23, 2022

Обработка персональных данных в случае, не предусмотренном законом

May 12, 2022

Синхронизация контактов Майкрософт и обработка данных, не внося в них пользователей

April 27, 2022

Container Engine for Kubernetes FAQ

April 24, 2022

kubernetes-dashboard/influxdb-ui.yaml.template at master · klaushofrichter/kubernetes-dashboard

April 24, 2022

Convert Kubernetes deployment YAML into Helm Chart YAML

April 24, 2022

Architecture Diagrams – couchbase/kubernetes Wiki

April 24, 2022

3 – Kubernetes Architecture Overview

April 24, 2022

Блокчейн: что это такое и как его используют

April 24, 2022

Изучение объектов Kubernetes

April 24, 2022

kubernetes-dashboard/go.mod at master · maciaszczykm/kubernetes-dashboard

April 24, 2022

Kubernetes Application Developer CKAD Exam Dumps and Certification Test Engine [Q10-Q32]

April 24, 2022

NBA Standings 2010-11 season – NBAstatr

April 23, 2022
  • Business
  • Science
  • Health
  • Entertainment
  • Sports
Sunday, May 22, 2022
  • Login
Lizeh
  • Home
  • Entertainment
  • Sports
  • Science
  • Health
  • Business
No Result
View All Result
Lizeh
No Result
View All Result

Kubernetes Ingress глазами новичка

by Admin
April 23, 2022
in Uncategorized
0


Ingress это базовый тип ресурса в кубертенесе. Если просто объявить объект типа Ingress в кубернетисе то ничего не произойдет.

Что бы этот ресурс начал работу в кластере кубернетиса должен быть установлен Ingress Controller, который настроит реверсивный прокси в соответствии с Ingress объектом.

Ingress Controller состоит из 2х компонентов — реверсивного прокси и контроллера который общается с API сервером кубернетеса. Реверсивный прокси слушает входящий трафик на портах которые указаны в настройках (обычно в настройках по умолчанию указан только порт 80). Контроллер может быть как отдельным демоном (как в nginx), так и встроенным в прокси (как в traefik).

Не все клауд провайдеры кубернетеса предустанавливают Ingress Controller по умолчанию.

Контроллеры могут запускаться либо как DaemonSet либо как Deployment. DaemonSet идеально использовать как единственный Ingress Controller, что бы реверсивное прокси слушало на всех IP адресах воркеров. Deployment отлично подходит если перед Ingress контроллером стоит балансировщик — от провайдера кубернетиса (GKE, AKS), MetalLB если онпремис или обычный haproxy/nginx установленный на сервере (требутеся ручная настройка). При этой установке возможно установить несколько Ingress Controller.

Во всех случаях реверс прокси в Ingress Controller слушает порты где ожидает http/https соединения.

Трафик на этоти порты может попасть тремя путями:

  • NodePort (на случайных портах в диапазоне 30000-32767)
  • HostPort (можно повесить на порты 80, 443)
  • Host network — Pod повестит свои порты на публичном сетевом интерфейсе (т.е. будут открыты все порты контейнера)

Table of Contents

  • NodePort
  • HostPort
  • Host network
  • Что выбрать
  • Videos

NodePort

Ставить Ingress Controller на NodePort без LoadBalancer имеет мало смысла, так как URL будет включать порт который указан в NodePort http://domain.example.org:32200/.

Для этого варианта лучше использовать Deployments. Это позволит проще скейлить количество подов ответственных за входящий трафик, прописывать им nodeAffinity и запускать несколько ingress controller (например для production и staging).

HostPort

При использовании HostPort порт пробрасывается с хоста где запущен под в этот самый Pod. LoadBalancer на вход не нужен, но для работы сайта в DNS нужно указывать что адрес домена находится на всех узлах.

Пример конфигурации DNS для 3х воркеров:

ingress.example.org A 10.0.0.1ingress.example.org A 10.0.0.2ingress.example.org A 10.0.0.3www.example.org CNAME ingress.example.org

Для этой установки лучше всего использовать DaemonSet т.к. он позволяет запустить не более одного Pod на хосте. Deployment возможен, но имеет мало смысла т.к. надо прописывать affinity что бы не назначилось 2 Pod на один хост, иначе будет конфликт по портам.

Пример конфигурации для traefik

kind: DaemonSetapiVersion: extensions/v1beta1metadata: name: traefik-ingress-controller namespace: traefik labels: k8s-app: traefik-ingress-lbspec: template: metadata: labels: k8s-app: traefik-ingress-lb name: traefik-ingress-lb namespace: traefik spec: serviceAccountName: traefik-ingress-controller terminationGracePeriodSeconds: 60 containers: - image: traefik:1.7.6 name: traefik-ingress-lb ports: - name: http containerPort: 80 hostPort: 80 - name: https containerPort: 443 hostPort: 443 - name: admin containerPort: 8080 hostPort: 8080 securityContext: capabilities: drop: - ALL add: - NET_BIND_SERVICE args: - --api - --kubernetes - --logLevel=DEBUG - --entrypoints=Name:https Address::443 TLS - --entrypoints=Name:http Address::80 - --defaultentrypoints=http

Host network

При запуске Ingress Controller в общей сети с хостом не требуется никаких пробросов портов, но в этом случае все порты которые открыты в Pod будут доступны из интернета. Для запуска лучше использовать DaemonSet. Причины такие же как и с HostPort — что бы избежать конфликта портов.

Что выбрать

Если есть LoadBalancer на входе — NodePort, если нет — HostPort + DNS Round Robin. Для экспериментов можно попробовать Host network, но это не безопасно.

Videos

1. Kubernetes Ingress Explained for Beginners

2. Kubernetes Tutorial for Beginners [FULL COURSE in 4 Hours]

3. Free SSL for Kubernetes with Cert-Manager

4. Understanding StatefulSets in Kubernetes

5. Ingress Kubernetes Explained For Beginners | Kubernetes Tutorial | Intellipaat

No related posts.

Related Posts

Uncategorized

Обработка персональных данных в случае, не предусмотренном законом

by Admin
May 12, 2022
0

Дело№ 5-319/2017ПОСТАНОВЛЕНИЕпо делу об административном правонарушенииг. Йошкар-Ола 29 ноября 2017 годаМировой судья судебного участка № 14 Йошкар-Олинского судебногорайона Республики Марий...

Read more
Uncategorized

Синхронизация контактов Майкрософт и обработка данных, не внося в них пользователей

by Admin
April 27, 2022
0

Функции синхронизации контактов в microsoft Teams и Skype (каждая из них — "служба") помогают пользователям быстро и легко связываться с...

Read more
general

Container Engine for Kubernetes FAQ

by Admin
April 24, 2022
0

Oracle Container Engine (OKE) What is Oracle Cloud Infrastructure Container Engine for Kubernetes? Container Engine for Kubernetes enables you to...

Read more
general

kubernetes-dashboard/influxdb-ui.yaml.template at master · klaushofrichter/kubernetes-dashboard

by Admin
April 24, 2022
0

51 lines (48 sloc) 984 Bytes Raw Blame Open with Desktop View raw View blame This file contains bidirectional Unicode...

Read more
Load More
  • Trending
  • Comments
  • Latest

Мой опыт и советы по сдаче экзамена Certified Kubernetes Application Developer (CKAD)

April 23, 2022

NBA Standings 2010-11 season – NBAstatr

April 23, 2022

Что такое виртуальная карта и как ею пользоваться

April 23, 2022

Что такое виртуальная машина для обработки и анализа данных Azure на Linux и Windows?

0

Синхронизация контактов Майкрософт и обработка данных, не внося в них пользователей

0

Обработка персональных данных в случае, не предусмотренном законом

0

Обработка персональных данных в случае, не предусмотренном законом

May 12, 2022

Синхронизация контактов Майкрософт и обработка данных, не внося в них пользователей

April 27, 2022

Container Engine for Kubernetes FAQ

April 24, 2022
  • Business
  • Science
  • Health
  • Entertainment
  • Sports
CONTACT US: support@tailieutuoi.com
No Result
View All Result
  • Home
  • Business
  • Health
  • Entertainment
  • Sports
  • Science

Copyright © 2022

Welcome Back!

Login to your account below

Forgotten Password?

Retrieve your password

Please enter your username or email address to reset your password.

Log In