Kgateway пайдалану
Kgateway аддонын Kubernetes кластеріндегі трафикті Gateway API арқылы бағыттау және сұрауларды тестілік қолданбаға жіберу үшін пайдаланыңыз.
- Егер әлі жасалмаған болса, өзекті нұсқадағы кластерді жасаңыз.
- Егер әлі жасалмаған болса,
kubectlутилитасын орнатып, баптаңыз. kubectlкөмегімен кластерге қосылыңыз.- Егер әлі жасалмаған болса, Kgateway аддонын орнатыңыз.
-
httpbinтестілік қолданбасы үшінhttpbin.yamlманифест файлын жасаңыз:apiVersion: v1kind: Namespacemetadata:name: httpbin---apiVersion: v1kind: Servicemetadata:name: httpbinnamespace: httpbinspec:ports:- port: 8000targetPort: 8080selector:app: httpbin---apiVersion: apps/v1kind: Deploymentmetadata:name: httpbinnamespace: httpbinspec:replicas: 1selector:matchLabels:app: httpbintemplate:metadata:labels:app: httpbinspec:containers:- name: httpbinimage: docker.io/mccutchen/go-httpbin:v2.6.0ports:- containerPort: 8080 -
Жасалған манифесті кластерде қолданыңыз:
kubectl apply -f httpbin.yaml
Манифесті қолдану нәтижесінде httpbin тестілік қолданбасы Deployment түрінде іске қосылады, сондай-ақ осы қолданбаға ішкі қолжетімділік үшін сервис жасалады. Kgateway кейіннен сыртқы HTTP-трафикті қабылдап, оны бағыттап, осы сервиске қайта жібереді.
-
Gateway API түріндегі
Gatewayресурсы үшінmy-gateway.yamlманифест файлын жасаңыз:apiVersion: gateway.networking.k8s.io/v1kind: Gatewaymetadata:name: httpnamespace: httpbinspec:gatewayClassName: kgatewaylisteners:- name: httpprotocol: HTTPport: 8080 -
Жасалған манифесті кластерде қолданыңыз:
kubectl apply -f my-gateway.yaml
Манифесті қолдану нәтижесінде Kgateway LoadBalancer түріндегі сервисті жасайды. VK Cloud трафикті қабылдау үшін стандартты жүктеме теңгергішін автоматты түрде жасап, оған жария Floating IP-мекенжайын тағайындайды.
-
Kgateway үшін HTTP-трафикті бағыттау ережесін сипаттайтын Gateway API түріндегі
HTTPRouteресурсы үшінmy-route.yamlманифест файлын жасаңыз:apiVersion: gateway.networking.k8s.io/v1kind: HTTPRoutemetadata:name: httpbinnamespace: httpbinspec:parentRefs:- name: httprules:- backendRefs:- name: httpbinport: 8000 -
Жасалған манифесті кластерде қолданыңыз:
kubectl apply -f my-route.yaml
Манифесті қолдану нәтижесінде HTTP-сұраулар httpbin сервисіне жіберіледі.
-
Жүктеме теңгергіші сыртқы IP-мекенжайын алғанша бірнеше минут күтіңіз және оны білу үшін келесі команданы орындаңыз:
kubectl get svc -n httpbinШығарылған кестеден осы теңгергіш үшін
EXTERNAL-IPмәнін табыңыз:NAME TYPE ... EXTERNAL-IP PORT(S) ...http LoadBalancer ... 100.70.151.108 8080:30000/TCP ... -
Жүктеме теңгергішінің сыртқы IP-мекенжайына тестілік сұрау жіберіңіз:
curl http://100.70.151.108:8080/getСұрауға сәтті жауап Kgateway Gateway API ресурстарын дұрыс өңдеп, трафикті
httpbinсервисіне бағыттайтынын білдіреді.
Жұмыс істеп тұрған кластер тарифтеледі және есептеу ресурстарын тұтынады. Егер Kgateway аддонының жұмысын тексеру үшін жасалған Kubernetes ресурстары енді қажет болмаса, оларды жойыңыз:
-
httpbinатаулар кеңістігін және онымен байланысты ресурстарды, соның ішінде жасалған теңгергіш пен Floating IP-мекенжайын жойыңыз:kubectl delete namespace httpbin -
Тоқтатыңыз жасалған кластерді, оны кейінірек пайдалану үшін, немесе жойыңыз оны біржола.