Kubernetes — контейнерленген қосымшаларды басқаруға арналған қуатты құрал. Kubernetes-тің негізгі компоненттерінің бірі — кластердегі қызметтерге сыртқы қолжетімділікті басқаратын Ingress.
Бұл мақалада Nginx Ingress Controller-ін қалай орнату және оның бастапқы конфигурациясын орындау туралы қарастырамыз.
Ingress-ке кіріспе
Kubernetes-те Ingress кластер ішіндегі қызметтерге сыртқы HTTP(S) трафикті маршрутизациялауға мүмкіндік береді. Ол көптеген мүмкіндіктерді ұсынады, мысалы:
- SSL/TLS терминациясы: SSL/TLS-ті Ingress деңгейінде өңдеуге мүмкіндік береді, бұл жүктемені қосымшалардан алып тастайды.
- Виртуалды хосттар: Бір IP-ге бірнеше хосттарды қолдау.
- URL қайта жазу: Сұрау URL-ларын өзгерту мүмкіндігі.
- Жүктемені теңестіру: Трафикті бірнеше қызмет даналары арасында тарату.
Nginx өзінің өнімділігі мен икемділігі арқасында ең танымал Ingress Controller-лерінің бірі болып табылады.
Nginx Ingress Controller орнату
Nginx Ingress Controller-ін Kubernetes-ке орнату үшін келесі қадамдарды орындаңыз.
Атау кеңістігін құру
Алдымен Nginx Ingress Controller үшін атау кеңістігін жасаңыз. Бұл ресурстарды оқшаулауды қамтамасыз етеді:
kubectl create namespace ingress-nginx
Манифесттерді қолдану
Nginx Ingress Controller-ін орнату үшін ресми манифесті пайдаланыңыз. Бұл орнату процесін жеңілдетеді және сіз соңғы нұсқасын алатыныңызға кепілдік береді:
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml
Бұл команда Nginx Ingress Controller-ін ingress-nginx
атау кеңістігіне орнату үшін қажетті ресурстарды жүктеп және қолданады.
Орнатуды тексеру
Барлық подтардың іске қосылғанына және жұмыс істеп тұрғанына көз жеткізіңіз. Мұны келесі командамен орындауға болады:
kubectl get pods -n ingress-nginx
Сіз Running
күйіндегі подтарды көруіңіз керек. Команданың мысалы:
NAME READY STATUS RESTARTS AGE
ingress-nginx-admission-create-7s8df 0/1 Completed 0 2m
ingress-nginx-admission-patch-4f5tk 0/1 Completed 0 2m
ingress-nginx-controller-58bd64f9c5-zz9ss 1/1 Running 0 2m
Nginx Ingress-тің бастапқы конфигурациясы
Nginx Ingress Controller орнатылғаннан кейін, трафикті қызметтеріңізге маршрутизациялау үшін Ingress ресурсын конфигурациялау қажет.
Ingress конфигурациясының мысалы
Веб-қосымшаның трафигін маршрутизациялау үшін қарапайым Ingress ресурсын жасайық. example-ingress.yaml
файлын келесі мазмұнмен жасаңыз:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
namespace: default
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: example-service
port:
number: 80
Конфигурацияны қолдану
Конфигурацияны келесі команда арқылы қолданыңыз:
kubectl apply -f example-ingress.yaml
DNS орнату
example.com
сіздің Nginx Ingress Controller-ге сілтеме жасау үшін DNS жазбасын орнатыңыз, ол сіздің бұлтты провайдеріңіз жасаған сыртқы Load Balancer-дің IP мекенжайына көрсетеді. Әдетте, бұл DNS провайдеріңіздің басқару консолі арқылы жасалады.
Қосымша орнатулар
Nginx Ingress Controller көптеген аннотацияларды қолдайды, олар Ingress ресурстарының мінез-құлқын егжей-тегжейлі реттеуге мүмкіндік береді. Бірнеше мысалдарды қарастырайық.
SSL/TLS терминациясы
SSL/TLS терминациясын орнату үшін TLS-секрет және сәйкес Ingress ресурсының конфигурациясы қажет.
TLS-секретті жасаңыз:
kubectl create secret tls example-tls --cert=/path/to/tls.crt --key=/path/to/tls.key -n default
Ingress ресурсын жаңартыңыз:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: example-ingress
namespace: default
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
tls:
- hosts:
- example.com
secretName: example-tls
rules:
- host: example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: example-service
port:
number: 80
URL қайта жазу
URL қайта жазу үшін nginx.ingress.kubernetes.io/rewrite-target
аннотациясын пайдаланыңыз:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: rewrite-example
namespace: default
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /newpath
spec:
rules:
- host: example.com
http:
paths:
- path: /oldpath
pathType: Prefix
backend:
service:
name: example-service
port:
number: 80
Сұраулар жылдамдығын шектеу
Сұраулар жылдамдығын шектеу үшін nginx.ingress.kubernetes.io/limit-rps
аннотациясын пайдаланыңыз:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: rate-limit-example
namespace: default
annotations:
nginx.ingress.kubernetes.io/limit-rps: "10"
spec:
rules:
- host: example.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: example-service
port:
number: 80
Ең Үздік тәжірибелер
-
Ingress мінез-құлқын реттеу үшін аннотацияларды пайдаланыңыз:
- Nginx Ingress Controller көптеген аннотацияларды қолдайды, олар оның мінез-құлқын икемді түрде реттеуге мүмкіндік береді. Мысалы, URL қайта жазу үшін
nginx.ingress.kubernetes.io/rewrite-target
, HTTP-ті HTTPS-ке қайта бағыттау үшінnginx.ingress.kubernetes.io/ssl-redirect
, уақыт шектеулерін орнату үшінnginx.ingress.kubernetes.io/proxy-read-timeout
және тағы басқа көптеген аннотацияларды қолдануға болады.
- Nginx Ingress Controller көптеген аннотацияларды қолдайды, олар оның мінез-құлқын икемді түрде реттеуге мүмкіндік береді. Мысалы, URL қайта жазу үшін
-
Мониторинг және журналдандыру:
- Өнімділікті бақылау және мәселелерді анықтау үшін Prometheus метрикаларын қосып, журналдарды жинауды реттеңіз. Nginx метрикаларды
nginx-prometheus-exporter
модулі арқылы Prometheus-ке экспорттауды қолдайды.
- Өнімділікті бақылау және мәселелерді анықтау үшін Prometheus метрикаларын қосып, журналдарды жинауды реттеңіз. Nginx метрикаларды
-
Қауіпсіздік үшін TLS қолданыңыз:
- Let's Encrypt және cert-manager арқылы TLS сертификаттарын автоматты түрде басқаруды орнатыңыз. Бұл клиент пен сервер арасындағы деректерді қауіпсіз тасымалдауды қамтамасыз етеді.
Сертификаттарды автоматты түрде жаңарту үшін cert-manager конфигурациясының мысалы:
yamlapiVersion: cert-manager.io/v1 kind: ClusterIssuer metadata: name: letsencrypt-prod spec: acme: server: https://acme-v02.api.letsencrypt.org/directory email:
Бұл электронды пошта мекен-жайы спам-боттардан қорғалған, оны қарау үшін Сізде Javascript қосылған. privateKeySecretRef: name: letsencrypt-prod solvers: - http01: ingress: class: nginx -
Network Policies пайдаланыңыз:
- Ingress контроллерлерге қолжетімділікті шектеу үшін желілік саясаттарды анықтаңыз. Бұл сіздің қызметтеріңізді рұқсатсыз қолжетімділіктен қорғауға көмектеседі.
Nginx үшін желілік саясаттың мысалы:
yamlapiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: nginx-ingress-policy namespace: ingress-nginx spec: podSelector: matchLabels: app.kubernetes.io/name: ingress-nginx policyTypes: - Ingress ingress: - from: - ipBlock: cidr: 0.0.0.0/0
-
Конфигурацияларды резервтік көшіру және қалпына келтіру:
- Kubernetes конфигурацияларын, соның ішінде Ingress ресурстарын үнемі резервтік көшірмесін жасаңыз. Бұл процесті автоматтандыру үшін
Velero
сияқты құралдарды пайдаланыңыз.
- Kubernetes конфигурацияларын, соның ішінде Ingress ресурстарын үнемі резервтік көшірмесін жасаңыз. Бұл процесті автоматтандыру үшін
Қорытынды
Kubernetes-ке Nginx Ingress Controller орнату және бастапқы конфигурациялау — қосымшаларыңызға сыртқы қолжетімділікті басқарудың маңызды қадамы. Nginx аннотациялар мен конфигурациялық файлдар арқылы оңай конфигурацияланатын қуатты маршрутизация, жүктемені теңестіру және қауіпсіздік мүмкіндіктерін ұсынады. Бұл мақалада көрсетілген қадамдарды орындау арқылы сіз Kubernetes кластеріңізге Nginx Ingress Controller-ді тез және тиімді түрде конфигурациялап, қызметтеріңізге сенімді және қауіпсіз қолжетімділікті қамтамасыз ете аласыз.
Реклама Google |
![]() |
Назар аударыңыз! Бұл мақала ресми құжат емес.Ақпаратты сақтықпен және сынақ ортасында пайдалану керек.
Заманауи сақтық көшірме жасау, репликациялау, деректерді синхрондау және төлемдік бағдарламадан қорғау жүйелерін құру туралы сұрақтарыңыз болса, қазіргі заманғы деректердің сақтық көшірмесін жасау және қалпына келтіру технологиялары бойынша кеңес алу үшін біздің компанияға хабарласыңыз . Біздің компанияның осы салада 20 жылдан астам тәжірибесі бар. |
Қазақстандағы резервтік көшірудің ең жақсы он тәжірибесі
- Proxmox гипервизорын жаңа физикалық серверге көшіру
- OpenShift қолдану арқылы Docker контейнерлерін пайдалану — терең талдау
- Wazuh-ты Proxmox қауіпсіздігін бақылау үшін пайдалану - Терең талдау Кіріспе
- Fail2Ban-ды zVirt-те орнату, баптау және пайдалану
- Graylog Community Edition-ді Proxmox-қа орнату, баптау және пайдалану
- Elasticsearch-ті Proxmox жүйесіне орнату, баптау және пайдалану
- Kibana-ны Proxmox-қа орнату, баптау және пайдалану
- Logstash-ты Proxmox-қа орнату, баптау және пайдалану
- Proxmox логтарын талдау үшін ИИ мүмкіндіктері
- Ceph-ті OpenStack-те орнату, баптау және пайдалану