{"id":3170,"date":"2023-02-16T13:10:55","date_gmt":"2023-02-16T06:10:55","guid":{"rendered":"https:\/\/www.forest.go.th\/it\/?p=3170"},"modified":"2023-07-20T11:27:15","modified_gmt":"2023-07-20T04:27:15","slug":"additional-ingress-controller-for-kubernetes-cluster-rke-2","status":"publish","type":"post","link":"https:\/\/www.forest.go.th\/it\/blog\/additional-ingress-controller-for-kubernetes-cluster-rke-2\/","title":{"rendered":"\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 Ingress Controller \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a Kubernetes cluster (RKE 2) \u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49 kube-vip"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"alignright size-full is-resized\"><a href=\"https:\/\/www.forest.go.th\/it\/wp-content\/uploads\/sites\/21\/2023\/02\/kube-vip-art.jpg\"><img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/www.forest.go.th\/it\/wp-content\/uploads\/sites\/21\/2023\/02\/kube-vip-art.jpg\" alt=\"\" class=\"wp-image-3722\" width=\"253\" height=\"253\" srcset=\"https:\/\/www.forest.go.th\/it\/wp-content\/uploads\/sites\/21\/2023\/02\/kube-vip-art.jpg 1024w, https:\/\/www.forest.go.th\/it\/wp-content\/uploads\/sites\/21\/2023\/02\/kube-vip-art-300x300.jpg 300w, https:\/\/www.forest.go.th\/it\/wp-content\/uploads\/sites\/21\/2023\/02\/kube-vip-art-150x150.jpg 150w, https:\/\/www.forest.go.th\/it\/wp-content\/uploads\/sites\/21\/2023\/02\/kube-vip-art-768x768.jpg 768w\" sizes=\"(max-width: 253px) 100vw, 253px\" \/><\/a><\/figure>\n<\/div>\n\n\n<p>\u0e43\u0e19\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e34\u0e14\u0e0a\u0e48\u0e2d\u0e07\u0e17\u0e32\u0e07\u0e43\u0e2b\u0e49\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07 Pod \u0e2b\u0e23\u0e37\u0e2d Deployment \u0e08\u0e32\u0e01\u0e20\u0e32\u0e22\u0e19\u0e2d\u0e01\u0e19\u0e31\u0e49\u0e19 \u0e19\u0e2d\u0e01\u0e08\u0e32\u0e01\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49 Service \u0e1b\u0e23\u0e30\u0e40\u0e20\u0e17 NodePort \u0e2b\u0e23\u0e37\u0e2d LoadBalancer \u0e41\u0e25\u0e49\u0e27 \u0e22\u0e31\u0e07\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e0a\u0e49 Ingress \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e1b\u0e34\u0e14\u0e43\u0e2b\u0e49\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07 Pod\/Deployment \u0e1c\u0e48\u0e32\u0e19 hostname \u0e17\u0e35\u0e48\u0e16\u0e39\u0e01\u0e40\u0e23\u0e35\u0e22\u0e01\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e44\u0e14\u0e49\u0e2d\u0e35\u0e01\u0e14\u0e49\u0e27\u0e22 \u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e40\u0e0a\u0e48\u0e19<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u0e40\u0e02\u0e49\u0e32\u0e1c\u0e48\u0e32\u0e19 <code>app1.example.com<\/code> \u0e43\u0e2b\u0e49\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e17\u0e35\u0e48 Deployment \u0e0a\u0e37\u0e48\u0e2d <code>app1<\/code><\/li>\n\n\n\n<li>\u0e40\u0e02\u0e49\u0e32\u0e1c\u0e48\u0e32\u0e19 <code>app2.example.com<\/code> \u0e43\u0e2b\u0e49\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e17\u0e35\u0e48 Deployment \u0e0a\u0e37\u0e48\u0e2d <code>app2<\/code><\/li>\n\n\n\n<li>\u0e40\u0e02\u0e49\u0e32\u0e1c\u0e48\u0e32\u0e19 <code>app2.example.com\/api\/v1<\/code> \u0e43\u0e2b\u0e49\u0e40\u0e0a\u0e37\u0e48\u0e2d\u0e21\u0e15\u0e48\u0e2d\u0e44\u0e1b\u0e17\u0e35\u0e48 Deployment \u0e0a\u0e37\u0e48\u0e2d <code>app2-api-v1<\/code><\/li>\n<\/ul>\n\n\n\n<p>\u0e42\u0e14\u0e22 Ingress \u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 \u0e40\u0e0a\u0e48\u0e19\u0e43\u0e2b\u0e49 hostname \u0e44\u0e2b\u0e19\u0e43\u0e0a\u0e49 Pod\/Deployment \u0e44\u0e2b\u0e19 \u0e41\u0e15\u0e48\u0e2a\u0e48\u0e27\u0e19\u0e17\u0e35\u0e48\u0e17\u0e33\u0e2b\u0e19\u0e49\u0e32\u0e17\u0e35\u0e48\u0e1b\u0e23\u0e30\u0e21\u0e27\u0e25\u0e1c\u0e25\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e40\u0e2b\u0e25\u0e48\u0e32\u0e19\u0e35\u0e49\u0e04\u0e37\u0e2d Ingress Controller<\/p>\n\n\n\n<p>Ingress Controller \u0e17\u0e35\u0e48\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07\u0e21\u0e32\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e01\u0e31\u0e19 RKE 2 \u0e04\u0e37\u0e2d <a href=\"https:\/\/github.com\/kubernetes\/ingress-nginx\" target=\"_blank\" rel=\"noreferrer noopener\">Ingress NGINX Controller<\/a> \u0e17\u0e35\u0e48\u0e1c\u0e48\u0e32\u0e19\u0e01\u0e32\u0e23<a href=\"https:\/\/github.com\/rancher\/rke2-charts\/blob\/dbade3fffd47efcf5ad28f11f8cc3216e506321c\/packages\/rke2-ingress-nginx\/generated-changes\/patch\/values.yaml.patch\" target=\"_blank\" rel=\"noreferrer noopener\">\u0e1b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32<\/a>\u0e43\u0e2b\u0e49\u0e40\u0e2b\u0e21\u0e32\u0e30\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a Kubernetes cluster \u0e17\u0e35\u0e48\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07\u0e20\u0e32\u0e22\u0e43\u0e19\u0e2d\u0e07\u0e04\u0e4c\u0e01\u0e23 \u0e0b\u0e36\u0e48\u0e07\u0e42\u0e14\u0e22\u0e17\u0e31\u0e48\u0e27\u0e44\u0e1b\u0e41\u0e25\u0e49\u0e27\u0e21\u0e31\u0e01\u0e08\u0e30\u0e44\u0e21\u0e48\u0e23\u0e2d\u0e07\u0e23\u0e31\u0e1a\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23 LoadBalancer \u0e40\u0e2b\u0e21\u0e37\u0e2d\u0e19\u0e1c\u0e39\u0e49\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e04\u0e25\u0e32\u0e27\u0e14\u0e4c<\/p>\n\n\n\n<p>\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e44\u0e23\u0e01\u0e47\u0e15\u0e32\u0e21 \u0e2b\u0e32\u0e01\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07 kube-vip \u0e43\u0e19 Kubernetes cluster \u0e14\u0e49\u0e27\u0e22\u0e27\u0e34\u0e18\u0e35\u0e01\u0e32\u0e23\u0e08\u0e32\u0e01<a href=\"https:\/\/www.forest.go.th\/it\/blog\/install-kubernetes-using-ansible-role-lablabs-rke2\/\">\u0e1a\u0e17\u0e04\u0e27\u0e32\u0e21\u0e01\u0e48\u0e2d\u0e19\u0e2b\u0e19\u0e49\u0e32<\/a> \u0e08\u0e30\u0e17\u0e33\u0e43\u0e2b\u0e49\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23 LoadBalancer \u0e44\u0e14\u0e49 \u0e08\u0e36\u0e07\u0e04\u0e27\u0e23\u0e1b\u0e23\u0e31\u0e1a\u0e04\u0e48\u0e32 Ingress NGINX Controller \u0e43\u0e2b\u0e49\u0e01\u0e25\u0e31\u0e1a\u0e21\u0e32\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 LoadBalancer \u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e1b\u0e23\u0e30\u0e2a\u0e34\u0e17\u0e18\u0e34\u0e20\u0e32\u0e1e\u0e43\u0e19\u0e01\u0e32\u0e23\u0e01\u0e23\u0e30\u0e08\u0e32\u0e22\u0e20\u0e32\u0e23\u0e30\u0e07\u0e32\u0e19<\/p>\n\n\n\n<p>RKE 2 \u0e21\u0e35\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e43\u0e19\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19\u0e42\u0e1f\u0e25\u0e40\u0e14\u0e2d\u0e23\u0e4c <code>\/var\/lib\/rancher\/rke2\/server\/manifests<\/code> \u0e02\u0e2d\u0e07\u0e42\u0e19\u0e14\u0e42\u0e14\u0e22\u0e2d\u0e31\u0e15\u0e42\u0e19\u0e21\u0e31\u0e15\u0e34 \u0e08\u0e36\u0e07\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e19\u0e33\u0e44\u0e1f\u0e25\u0e4c YAML \u0e2b\u0e23\u0e37\u0e2d\u0e41\u0e21\u0e49\u0e41\u0e15\u0e48\u0e44\u0e1f\u0e25\u0e4c Helm Chart \u0e44\u0e1b\u0e27\u0e32\u0e07\u0e44\u0e27\u0e49\u0e40\u0e1e\u0e37\u0e48\u0e2d\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e43\u0e19 Kubernetes cluster \u0e44\u0e14\u0e49 \u0e0b\u0e36\u0e48\u0e07\u0e2a\u0e48\u0e27\u0e19\u0e1b\u0e23\u0e30\u0e01\u0e2d\u0e1a\u0e17\u0e35\u0e48\u0e2a\u0e33\u0e04\u0e31\u0e0d \u0e23\u0e27\u0e21\u0e16\u0e36\u0e07 Ingress Controller \u0e17\u0e35\u0e48\u0e21\u0e32\u0e1e\u0e23\u0e49\u0e2d\u0e21\u0e01\u0e31\u0e1a RKE 2 \u0e01\u0e47\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07\u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e27\u0e34\u0e18\u0e35\u0e19\u0e35\u0e49\u0e40\u0e0a\u0e48\u0e19\u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e19 \u0e14\u0e31\u0e07\u0e08\u0e30\u0e40\u0e2b\u0e47\u0e19\u0e44\u0e14\u0e49\u0e08\u0e32\u0e01\u0e44\u0e1f\u0e25\u0e4c\u0e17\u0e35\u0e48\u0e2d\u0e22\u0e39\u0e48\u0e43\u0e19\u0e19\u0e31\u0e49\u0e19<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ sudo ls \/var\/lib\/rancher\/rke2\/server\/manifests\nkube-vip-cloud-controller.yml          kube-vip.yml       rke2-ingress-nginx.yaml\nkube-vip-cloud-provider-configmap.yml  rke2-canal.yaml    rke2-metrics-server.yaml\nkube-vip-rbac.yml                      rke2-coredns.yaml<\/code><\/pre>\n\n\n\n<p>\u0e1a\u0e17\u0e04\u0e27\u0e32\u0e21\u0e19\u0e35\u0e49\u0e08\u0e30\u0e40\u0e1b\u0e47\u0e19\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 Ingress Controller \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a Kubernetes cluster (RKE 2) \u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49 kube-vip \u0e42\u0e14\u0e22\u0e21\u0e35\u0e02\u0e31\u0e49\u0e19\u0e15\u0e2d\u0e19\u0e14\u0e31\u0e07\u0e19\u0e35\u0e49<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u0e1b\u0e23\u0e31\u0e1a\u0e04\u0e48\u0e32 Ingress NGINX Controller \u0e43\u0e2b\u0e49\u0e01\u0e25\u0e31\u0e1a\u0e21\u0e32\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 LoadBalancer<\/li>\n\n\n\n<li>\u0e2a\u0e23\u0e49\u0e32\u0e07 Ingress Controller \u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e08\u0e32\u0e01\u0e20\u0e32\u0e22\u0e19\u0e2d\u0e01<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">\u0e1b\u0e23\u0e31\u0e1a\u0e04\u0e48\u0e32 Ingress NGINX Controller \u0e43\u0e2b\u0e49\u0e01\u0e25\u0e31\u0e1a\u0e21\u0e32\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19 LoadBalancer<\/h2>\n\n\n\n<p>\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e17\u0e23\u0e31\u0e1e\u0e22\u0e32\u0e01\u0e23\u0e40\u0e14\u0e34\u0e21\u0e43\u0e19 RKE 2 \u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e17\u0e33\u0e44\u0e14\u0e49\u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49 <a href=\"https:\/\/docs.rke2.io\/helm#customizing-packaged-components-with-helmchartconfig\" target=\"_blank\" rel=\"noreferrer noopener\">HelmChartConfig<\/a> \u0e14\u0e31\u0e07\u0e19\u0e31\u0e49\u0e19 \u0e2b\u0e32\u0e01\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e1b\u0e23\u0e31\u0e1a\u0e04\u0e48\u0e32 Ingress NGINX Controller \u0e40\u0e14\u0e34\u0e21 \u0e43\u0e2b\u0e49\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e44\u0e1f\u0e25\u0e4c <code>rke2-ingress-nginx-config.yaml<\/code> \u0e02\u0e36\u0e49\u0e19\u0e21\u0e32 \u0e43\u0e2b\u0e49\u0e21\u0e35\u0e40\u0e19\u0e37\u0e49\u0e2d\u0e2b\u0e32\u0e14\u0e31\u0e07\u0e19\u0e35\u0e49<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: helm.cattle.io\/v1\nkind: HelmChartConfig\nmetadata:\n  name: rke2-ingress-nginx\n  namespace: kube-system\nspec:\n  valuesContent: |-\n    controller:\n      affinity:\n        podAntiAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n          - labelSelector:\n              matchExpressions:\n              - key: app.kubernetes.io\/instance\n                operator: In\n                values:\n                - rke2-ingress-nginx\n            topologyKey: \"kubernetes.io\/hostname\"\n      hostPort:\n        enabled: false\n      ingressClassResource:\n        default: true\n      kind: Deployment\n      publishService:\n        enabled: true\n      service:\n        enabled: true<\/code><\/pre>\n\n\n\n<p>\u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19\u0e08\u0e36\u0e07\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01\u0e44\u0e1b\u0e44\u0e27\u0e49\u0e43\u0e19\u0e42\u0e1f\u0e25\u0e40\u0e14\u0e2d\u0e23\u0e4c\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07 manifest \u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07 <code>sudo mv rke2-ingress-nginx-config.yaml \/var\/lib\/rancher\/rke2\/server\/manifests<\/code> \u0e41\u0e25\u0e30\u0e23\u0e2d\u0e43\u0e2b\u0e49\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07\u0e2a\u0e34\u0e49\u0e19\u0e2a\u0e38\u0e14 \u0e42\u0e14\u0e22\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e44\u0e14\u0e49\u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07 <code>kubectl -n kube-system get svc<\/code> \u0e2b\u0e32\u0e01 TYPE \u0e02\u0e2d\u0e07\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23 rke2-ingress-nginx-controller \u0e01\u0e25\u0e32\u0e22\u0e40\u0e1b\u0e47\u0e19 LoadBalancer \u0e41\u0e2a\u0e14\u0e07\u0e27\u0e48\u0e32\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07\u0e2a\u0e33\u0e40\u0e23\u0e47\u0e08\u0e41\u0e25\u0e49\u0e27 \u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>NAME                                 TYPE           CLUSTER-IP     EXTERNAL-IP    PORT(S)                      AGE\n...\nrke2-ingress-nginx-controller        LoadBalancer   10.41.116.24   192.168.0.195   80:31510\/TCP,443:31792\/TCP   1d\n...<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">\u0e2a\u0e23\u0e49\u0e32\u0e07 Ingress Controller \u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e01\u0e32\u0e23\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e08\u0e32\u0e01\u0e20\u0e32\u0e22\u0e19\u0e2d\u0e01<\/h2>\n\n\n\n<p>\u0e2d\u0e07\u0e04\u0e4c\u0e01\u0e23\u0e2d\u0e32\u0e08\u0e08\u0e30\u0e21\u0e35\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e01\u0e25\u0e38\u0e48\u0e21\u0e23\u0e30\u0e1a\u0e1a\u0e07\u0e32\u0e19\u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e43\u0e0a\u0e49\u0e20\u0e32\u0e22\u0e43\u0e19 (intranet) \u0e41\u0e25\u0e30\u0e23\u0e30\u0e1a\u0e1a\u0e07\u0e32\u0e19\u0e17\u0e35\u0e48\u0e40\u0e1b\u0e34\u0e14\u0e43\u0e2b\u0e49\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e44\u0e14\u0e49\u0e08\u0e32\u0e01\u0e2a\u0e32\u0e18\u0e32\u0e23\u0e13\u0e30 (internet) \u0e0b\u0e36\u0e48\u0e07\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e19\u0e33\u0e21\u0e32\u0e1b\u0e23\u0e31\u0e1a\u0e43\u0e0a\u0e49\u0e43\u0e19 Kubernetes cluster \u0e42\u0e14\u0e22\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49 Ingress Controller 2 \u0e0a\u0e38\u0e14 \u0e14\u0e31\u0e07\u0e19\u0e35\u0e49<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>rke2-ingress-nginx \u0e21\u0e35\u0e40\u0e09\u0e1e\u0e32\u0e30 private ip<\/li>\n\n\n\n<li>rke2-ingress-nginx-public \u0e21\u0e35 private ip \u0e17\u0e35\u0e48 port forward \u0e44\u0e1b\u0e22\u0e31\u0e07 public ip<\/li>\n<\/ul>\n\n\n\n<p>\u0e0b\u0e36\u0e48\u0e07 RKE 2 \u0e21\u0e35 rke2-ingress-nginx \u0e2d\u0e22\u0e39\u0e48\u0e41\u0e25\u0e49\u0e27 \u0e08\u0e36\u0e07\u0e40\u0e2b\u0e25\u0e37\u0e2d\u0e40\u0e09\u0e1e\u0e32\u0e30\u0e2a\u0e48\u0e27\u0e19\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32\u0e40\u0e1e\u0e34\u0e48\u0e21\u0e40\u0e15\u0e34\u0e21 \u0e04\u0e37\u0e2d rke2-ingress-nginx-public \u0e0b\u0e36\u0e48\u0e07\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e17\u0e33\u0e44\u0e14\u0e49\u0e42\u0e14\u0e22\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01\u0e44\u0e1f\u0e25\u0e4c manifest \u0e02\u0e2d\u0e07 Ingress Controller \u0e40\u0e14\u0e34\u0e21\u0e21\u0e32\u0e44\u0e27\u0e49\u0e1e\u0e31\u0e01\u0e44\u0e27\u0e49\u0e41\u0e25\u0e30\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e0a\u0e37\u0e48\u0e2d\u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07 <code>sudo cp \/var\/lib\/rancher\/rke2\/server\/manifests\/rke2-ingress-nginx.yaml . &amp;&amp; mv rke2-ingress-nginx.yaml rke2-ingress-nginx-public.yaml<\/code> \u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19\u0e41\u0e01\u0e49\u0e44\u0e02\u0e44\u0e1f\u0e25\u0e4c \u0e14\u0e31\u0e07\u0e19\u0e35\u0e49<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u0e41\u0e01\u0e49 <code>metadata.name<\/code> \u0e08\u0e32\u0e01 <code>rke2-ingress-nginx<\/code> \u0e40\u0e1b\u0e47\u0e19 <code>rke2-ingress-nginx-public<\/code><\/li>\n\n\n\n<li>\u0e40\u0e1e\u0e34\u0e48\u0e21 <code>spec.valuesContent<\/code> \u0e15\u0e32\u0e21\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e14\u0e49\u0e32\u0e19\u0e25\u0e48\u0e32\u0e07<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>apiVersion: helm.cattle.io\/v1\nkind: HelmChart\nmetadata:\n  annotations:\n    helm.cattle.io\/chart-url: https:\/\/rke2-charts.rancher.io\/assets\/rke2-ingress-nginx\/rke2-ingress-nginx-4.1.004.tgz\n  name: rke2-ingress-nginx-public\n  namespace: kube-system\nspec:\n  chartContent: H4sICGHX2WICA3Rtc...\n  set:\n    ...\n  valuesContent: |-\n    controller:\n      affinity:\n        podAntiAffinity:\n          requiredDuringSchedulingIgnoredDuringExecution:\n          - labelSelector:\n              matchExpressions:\n              - key: app.kubernetes.io\/instance\n                operator: In\n                values:\n                - rke2-ingress-nginx-public\n            topologyKey: \"kubernetes.io\/hostname\"\n      containerName: \"controller\"\n      electionID: public-ingress-controller-leader\n      hostPort:\n        enabled: false\n      ingressClass: public-nginx\n      ingressClassResource:\n        name: public-nginx\n        controllerValue: \"k8s.io\/public-ingress-nginx\"\n      kind: Deployment\n      publishService:\n        enabled: true\n      service:\n        enabled: true\n      watchIngressWithoutClass: false\nstatus: {}<\/code><\/pre>\n\n\n\n<p>\u0e08\u0e32\u0e01\u0e19\u0e31\u0e49\u0e19\u0e08\u0e36\u0e07\u0e04\u0e31\u0e14\u0e25\u0e2d\u0e01\u0e44\u0e1f\u0e25\u0e4c\u0e17\u0e35\u0e48\u0e41\u0e01\u0e49\u0e44\u0e02\u0e41\u0e25\u0e49\u0e27\u0e44\u0e1b\u0e44\u0e27\u0e49\u0e43\u0e19\u0e42\u0e1f\u0e25\u0e40\u0e14\u0e2d\u0e23\u0e4c manifest \u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07 <code>sudo mv rke2-ingress-nginx-public.yaml \/var\/lib\/rancher\/rke2\/server\/manifests<\/code> \u0e41\u0e25\u0e30\u0e23\u0e2d\u0e43\u0e2b\u0e49\u0e01\u0e32\u0e23\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07\u0e2a\u0e34\u0e49\u0e19\u0e2a\u0e38\u0e14 \u0e42\u0e14\u0e22\u0e15\u0e23\u0e27\u0e08\u0e2a\u0e2d\u0e1a\u0e44\u0e14\u0e49\u0e42\u0e14\u0e22\u0e43\u0e0a\u0e49\u0e04\u0e33\u0e2a\u0e31\u0e48\u0e07 <code>kubectl -n kube-system get svc<\/code> \u0e2b\u0e32\u0e01\u0e21\u0e35\u0e23\u0e32\u0e22\u0e01\u0e32\u0e23 rke2-ingress-nginx-public-controller \u0e40\u0e1e\u0e34\u0e48\u0e21\u0e02\u0e36\u0e49\u0e19\u0e21\u0e32 \u0e41\u0e2a\u0e14\u0e07\u0e27\u0e48\u0e32\u0e15\u0e34\u0e14\u0e15\u0e31\u0e49\u0e07\u0e2a\u0e33\u0e40\u0e23\u0e47\u0e08\u0e41\u0e25\u0e49\u0e27 \u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$ kubectl -n kube-system get svc\nNAME                                   TYPE           CLUSTER-IP     EXTERNAL-IP    PORT(S)                      AGE\n...\nrke2-ingress-nginx-public-controller   LoadBalancer   10.41.22.144   192.168.0.191   80:30661\/TCP,443:31087\/TCP   1d\n...<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07\u0e01\u0e32\u0e23\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19<\/h3>\n\n\n\n<p>\u0e08\u0e32\u0e01\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 Ingress Controller \u0e14\u0e49\u0e32\u0e19\u0e1a\u0e19 \u0e01\u0e23\u0e13\u0e35\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07 Ingress \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a\u0e43\u0e0a\u0e49\u0e07\u0e32\u0e19\u0e20\u0e32\u0e22\u0e43\u0e19 \u0e44\u0e21\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e23\u0e30\u0e1a\u0e38 <code>spec.ingressClassName<\/code> \u0e2b\u0e23\u0e37\u0e2d\u0e23\u0e30\u0e1a\u0e38\u0e43\u0e2b\u0e49\u0e40\u0e1b\u0e47\u0e19 <code>nginx<\/code> \u0e14\u0e31\u0e07\u0e19\u0e35\u0e49<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>---\napiVersion: networking.k8s.io\/v1\nkind: Ingress\nmetadata:\n  ...\nspec:\n  ingressClassName: nginx\n  ...<\/code><\/pre>\n\n\n\n<p>\u0e01\u0e23\u0e13\u0e35\u0e17\u0e35\u0e48\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e2a\u0e23\u0e49\u0e32\u0e07 Ingress \u0e17\u0e35\u0e48\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07\u0e44\u0e14\u0e49\u0e08\u0e32\u0e01\u0e2d\u0e34\u0e19\u0e40\u0e17\u0e2d\u0e23\u0e4c\u0e40\u0e19\u0e47\u0e15 \u0e43\u0e2b\u0e49\u0e23\u0e30\u0e1a\u0e38 <code>spec.ingressClassName<\/code> \u0e40\u0e1b\u0e47\u0e19 <code>public-nginx<\/code> \u0e14\u0e31\u0e07\u0e19\u0e35\u0e49<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>---\napiVersion: networking.k8s.io\/v1\nkind: Ingress\nmetadata:\n  ...\nspec:\n  ingressClassName: public-nginx\n  ...<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u0e43\u0e19\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e34\u0e14\u0e0a\u0e48\u0e2d\u0e07\u0e17\u0e32\u0e07\u0e43\u0e2b\u0e49\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07 Pod \u0e2b\u0e23\u0e37\u0e2d Deploym [&hellip;]<\/p>\n","protected":false},"author":181,"featured_media":3722,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[56],"tags":[44,58,43],"class_list":{"0":"post-3170","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-km","8":"tag-k8s","9":"tag-kube-vip","10":"tag-kubernetes","11":"czr-hentry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 Ingress Controller \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a Kubernetes cluster (RKE 2) \u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49 kube-vip - \u0e28\u0e39\u0e19\u0e22\u0e4c\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e2a\u0e32\u0e23\u0e2a\u0e19\u0e40\u0e17\u0e28\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23 \u0e01\u0e23\u0e21\u0e1b\u0e48\u0e32\u0e44\u0e21\u0e49<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.forest.go.th\/it\/blog\/additional-ingress-controller-for-kubernetes-cluster-rke-2\/\" \/>\n<meta property=\"og:locale\" content=\"th_TH\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 Ingress Controller \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a Kubernetes cluster (RKE 2) \u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49 kube-vip - \u0e28\u0e39\u0e19\u0e22\u0e4c\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e2a\u0e32\u0e23\u0e2a\u0e19\u0e40\u0e17\u0e28\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23 \u0e01\u0e23\u0e21\u0e1b\u0e48\u0e32\u0e44\u0e21\u0e49\" \/>\n<meta property=\"og:description\" content=\"\u0e43\u0e19\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e34\u0e14\u0e0a\u0e48\u0e2d\u0e07\u0e17\u0e32\u0e07\u0e43\u0e2b\u0e49\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07 Pod \u0e2b\u0e23\u0e37\u0e2d Deploym [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.forest.go.th\/it\/blog\/additional-ingress-controller-for-kubernetes-cluster-rke-2\/\" \/>\n<meta property=\"og:site_name\" content=\"\u0e28\u0e39\u0e19\u0e22\u0e4c\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e2a\u0e32\u0e23\u0e2a\u0e19\u0e40\u0e17\u0e28\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23 \u0e01\u0e23\u0e21\u0e1b\u0e48\u0e32\u0e44\u0e21\u0e49\" \/>\n<meta property=\"article:published_time\" content=\"2023-02-16T06:10:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-07-20T04:27:15+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.forest.go.th\/it\/wp-content\/uploads\/sites\/21\/2023\/02\/kube-vip-art.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"1024\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Wee\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Wee\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 \u0e19\u0e32\u0e17\u0e35\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/blog\\\/additional-ingress-controller-for-kubernetes-cluster-rke-2\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/blog\\\/additional-ingress-controller-for-kubernetes-cluster-rke-2\\\/\"},\"author\":{\"name\":\"Wee\",\"@id\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/#\\\/schema\\\/person\\\/5dbc1c984434569a24da99df80b51bc2\"},\"headline\":\"\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 Ingress Controller \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a Kubernetes cluster (RKE 2) \u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49 kube-vip\",\"datePublished\":\"2023-02-16T06:10:55+00:00\",\"dateModified\":\"2023-07-20T04:27:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/blog\\\/additional-ingress-controller-for-kubernetes-cluster-rke-2\\\/\"},\"wordCount\":111,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/blog\\\/additional-ingress-controller-for-kubernetes-cluster-rke-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/wp-content\\\/uploads\\\/sites\\\/21\\\/2023\\\/02\\\/kube-vip-art.jpg\",\"keywords\":[\"k8s\",\"kube-vip\",\"kubernetes\"],\"articleSection\":[\"\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e04\u0e27\u0e32\u0e21\u0e23\u0e39\u0e49\"],\"inLanguage\":\"th\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.forest.go.th\\\/it\\\/blog\\\/additional-ingress-controller-for-kubernetes-cluster-rke-2\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/blog\\\/additional-ingress-controller-for-kubernetes-cluster-rke-2\\\/\",\"url\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/blog\\\/additional-ingress-controller-for-kubernetes-cluster-rke-2\\\/\",\"name\":\"\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 Ingress Controller \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a Kubernetes cluster (RKE 2) \u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49 kube-vip - \u0e28\u0e39\u0e19\u0e22\u0e4c\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e2a\u0e32\u0e23\u0e2a\u0e19\u0e40\u0e17\u0e28\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23 \u0e01\u0e23\u0e21\u0e1b\u0e48\u0e32\u0e44\u0e21\u0e49\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/blog\\\/additional-ingress-controller-for-kubernetes-cluster-rke-2\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/blog\\\/additional-ingress-controller-for-kubernetes-cluster-rke-2\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/wp-content\\\/uploads\\\/sites\\\/21\\\/2023\\\/02\\\/kube-vip-art.jpg\",\"datePublished\":\"2023-02-16T06:10:55+00:00\",\"dateModified\":\"2023-07-20T04:27:15+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/blog\\\/additional-ingress-controller-for-kubernetes-cluster-rke-2\\\/#breadcrumb\"},\"inLanguage\":\"th\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.forest.go.th\\\/it\\\/blog\\\/additional-ingress-controller-for-kubernetes-cluster-rke-2\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"th\",\"@id\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/blog\\\/additional-ingress-controller-for-kubernetes-cluster-rke-2\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/wp-content\\\/uploads\\\/sites\\\/21\\\/2023\\\/02\\\/kube-vip-art.jpg\",\"contentUrl\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/wp-content\\\/uploads\\\/sites\\\/21\\\/2023\\\/02\\\/kube-vip-art.jpg\",\"width\":1024,\"height\":1024},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/blog\\\/additional-ingress-controller-for-kubernetes-cluster-rke-2\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 Ingress Controller \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a Kubernetes cluster (RKE 2) \u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49 kube-vip\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/#website\",\"url\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/\",\"name\":\"\u0e28\u0e39\u0e19\u0e22\u0e4c\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e2a\u0e32\u0e23\u0e2a\u0e19\u0e40\u0e17\u0e28\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23 \u0e01\u0e23\u0e21\u0e1b\u0e48\u0e32\u0e44\u0e21\u0e49\",\"description\":\"\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e14\u0e49\u0e32\u0e19\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e2a\u0e32\u0e23\u0e2a\u0e19\u0e40\u0e17\u0e28\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"th\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/#organization\",\"name\":\"\u0e28\u0e39\u0e19\u0e22\u0e4c\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e2a\u0e32\u0e23\u0e2a\u0e19\u0e40\u0e17\u0e28\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23 \u0e01\u0e23\u0e21\u0e1b\u0e48\u0e32\u0e44\u0e21\u0e49\",\"url\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"th\",\"@id\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/wp-content\\\/uploads\\\/sites\\\/21\\\/2023\\\/02\\\/new-rfd-web-logo-it.png\",\"contentUrl\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/wp-content\\\/uploads\\\/sites\\\/21\\\/2023\\\/02\\\/new-rfd-web-logo-it.png\",\"width\":720,\"height\":200,\"caption\":\"\u0e28\u0e39\u0e19\u0e22\u0e4c\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e2a\u0e32\u0e23\u0e2a\u0e19\u0e40\u0e17\u0e28\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23 \u0e01\u0e23\u0e21\u0e1b\u0e48\u0e32\u0e44\u0e21\u0e49\"},\"image\":{\"@id\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/#\\\/schema\\\/logo\\\/image\\\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/#\\\/schema\\\/person\\\/5dbc1c984434569a24da99df80b51bc2\",\"name\":\"Wee\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"th\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/01458eaaaec34a4081d440b97161c1d5752ffb67e2dbd149e4eed7deb34715da?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/01458eaaaec34a4081d440b97161c1d5752ffb67e2dbd149e4eed7deb34715da?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/01458eaaaec34a4081d440b97161c1d5752ffb67e2dbd149e4eed7deb34715da?s=96&d=mm&r=g\",\"caption\":\"Wee\"},\"url\":\"https:\\\/\\\/www.forest.go.th\\\/it\\\/blog\\\/author\\\/wees\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 Ingress Controller \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a Kubernetes cluster (RKE 2) \u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49 kube-vip - \u0e28\u0e39\u0e19\u0e22\u0e4c\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e2a\u0e32\u0e23\u0e2a\u0e19\u0e40\u0e17\u0e28\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23 \u0e01\u0e23\u0e21\u0e1b\u0e48\u0e32\u0e44\u0e21\u0e49","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.forest.go.th\/it\/blog\/additional-ingress-controller-for-kubernetes-cluster-rke-2\/","og_locale":"th_TH","og_type":"article","og_title":"\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 Ingress Controller \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a Kubernetes cluster (RKE 2) \u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49 kube-vip - \u0e28\u0e39\u0e19\u0e22\u0e4c\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e2a\u0e32\u0e23\u0e2a\u0e19\u0e40\u0e17\u0e28\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23 \u0e01\u0e23\u0e21\u0e1b\u0e48\u0e32\u0e44\u0e21\u0e49","og_description":"\u0e43\u0e19\u0e01\u0e32\u0e23\u0e40\u0e1b\u0e34\u0e14\u0e0a\u0e48\u0e2d\u0e07\u0e17\u0e32\u0e07\u0e43\u0e2b\u0e49\u0e1c\u0e39\u0e49\u0e43\u0e0a\u0e49\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16\u0e40\u0e02\u0e49\u0e32\u0e16\u0e36\u0e07 Pod \u0e2b\u0e23\u0e37\u0e2d Deploym [&hellip;]","og_url":"https:\/\/www.forest.go.th\/it\/blog\/additional-ingress-controller-for-kubernetes-cluster-rke-2\/","og_site_name":"\u0e28\u0e39\u0e19\u0e22\u0e4c\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e2a\u0e32\u0e23\u0e2a\u0e19\u0e40\u0e17\u0e28\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23 \u0e01\u0e23\u0e21\u0e1b\u0e48\u0e32\u0e44\u0e21\u0e49","article_published_time":"2023-02-16T06:10:55+00:00","article_modified_time":"2023-07-20T04:27:15+00:00","og_image":[{"width":1024,"height":1024,"url":"https:\/\/www.forest.go.th\/it\/wp-content\/uploads\/sites\/21\/2023\/02\/kube-vip-art.jpg","type":"image\/jpeg"}],"author":"Wee","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Wee","Est. reading time":"3 \u0e19\u0e32\u0e17\u0e35"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.forest.go.th\/it\/blog\/additional-ingress-controller-for-kubernetes-cluster-rke-2\/#article","isPartOf":{"@id":"https:\/\/www.forest.go.th\/it\/blog\/additional-ingress-controller-for-kubernetes-cluster-rke-2\/"},"author":{"name":"Wee","@id":"https:\/\/www.forest.go.th\/it\/#\/schema\/person\/5dbc1c984434569a24da99df80b51bc2"},"headline":"\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 Ingress Controller \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a Kubernetes cluster (RKE 2) \u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49 kube-vip","datePublished":"2023-02-16T06:10:55+00:00","dateModified":"2023-07-20T04:27:15+00:00","mainEntityOfPage":{"@id":"https:\/\/www.forest.go.th\/it\/blog\/additional-ingress-controller-for-kubernetes-cluster-rke-2\/"},"wordCount":111,"commentCount":0,"publisher":{"@id":"https:\/\/www.forest.go.th\/it\/#organization"},"image":{"@id":"https:\/\/www.forest.go.th\/it\/blog\/additional-ingress-controller-for-kubernetes-cluster-rke-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.forest.go.th\/it\/wp-content\/uploads\/sites\/21\/2023\/02\/kube-vip-art.jpg","keywords":["k8s","kube-vip","kubernetes"],"articleSection":["\u0e01\u0e32\u0e23\u0e08\u0e31\u0e14\u0e01\u0e32\u0e23\u0e04\u0e27\u0e32\u0e21\u0e23\u0e39\u0e49"],"inLanguage":"th","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.forest.go.th\/it\/blog\/additional-ingress-controller-for-kubernetes-cluster-rke-2\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.forest.go.th\/it\/blog\/additional-ingress-controller-for-kubernetes-cluster-rke-2\/","url":"https:\/\/www.forest.go.th\/it\/blog\/additional-ingress-controller-for-kubernetes-cluster-rke-2\/","name":"\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 Ingress Controller \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a Kubernetes cluster (RKE 2) \u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49 kube-vip - \u0e28\u0e39\u0e19\u0e22\u0e4c\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e2a\u0e32\u0e23\u0e2a\u0e19\u0e40\u0e17\u0e28\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23 \u0e01\u0e23\u0e21\u0e1b\u0e48\u0e32\u0e44\u0e21\u0e49","isPartOf":{"@id":"https:\/\/www.forest.go.th\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.forest.go.th\/it\/blog\/additional-ingress-controller-for-kubernetes-cluster-rke-2\/#primaryimage"},"image":{"@id":"https:\/\/www.forest.go.th\/it\/blog\/additional-ingress-controller-for-kubernetes-cluster-rke-2\/#primaryimage"},"thumbnailUrl":"https:\/\/www.forest.go.th\/it\/wp-content\/uploads\/sites\/21\/2023\/02\/kube-vip-art.jpg","datePublished":"2023-02-16T06:10:55+00:00","dateModified":"2023-07-20T04:27:15+00:00","breadcrumb":{"@id":"https:\/\/www.forest.go.th\/it\/blog\/additional-ingress-controller-for-kubernetes-cluster-rke-2\/#breadcrumb"},"inLanguage":"th","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.forest.go.th\/it\/blog\/additional-ingress-controller-for-kubernetes-cluster-rke-2\/"]}]},{"@type":"ImageObject","inLanguage":"th","@id":"https:\/\/www.forest.go.th\/it\/blog\/additional-ingress-controller-for-kubernetes-cluster-rke-2\/#primaryimage","url":"https:\/\/www.forest.go.th\/it\/wp-content\/uploads\/sites\/21\/2023\/02\/kube-vip-art.jpg","contentUrl":"https:\/\/www.forest.go.th\/it\/wp-content\/uploads\/sites\/21\/2023\/02\/kube-vip-art.jpg","width":1024,"height":1024},{"@type":"BreadcrumbList","@id":"https:\/\/www.forest.go.th\/it\/blog\/additional-ingress-controller-for-kubernetes-cluster-rke-2\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.forest.go.th\/it\/"},{"@type":"ListItem","position":2,"name":"\u0e01\u0e32\u0e23\u0e15\u0e31\u0e49\u0e07\u0e04\u0e48\u0e32 Ingress Controller \u0e2a\u0e33\u0e2b\u0e23\u0e31\u0e1a Kubernetes cluster (RKE 2) \u0e17\u0e35\u0e48\u0e43\u0e0a\u0e49 kube-vip"}]},{"@type":"WebSite","@id":"https:\/\/www.forest.go.th\/it\/#website","url":"https:\/\/www.forest.go.th\/it\/","name":"\u0e28\u0e39\u0e19\u0e22\u0e4c\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e2a\u0e32\u0e23\u0e2a\u0e19\u0e40\u0e17\u0e28\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23 \u0e01\u0e23\u0e21\u0e1b\u0e48\u0e32\u0e44\u0e21\u0e49","description":"\u0e43\u0e2b\u0e49\u0e1a\u0e23\u0e34\u0e01\u0e32\u0e23\u0e14\u0e49\u0e32\u0e19\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e2a\u0e32\u0e23\u0e2a\u0e19\u0e40\u0e17\u0e28","publisher":{"@id":"https:\/\/www.forest.go.th\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.forest.go.th\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"th"},{"@type":"Organization","@id":"https:\/\/www.forest.go.th\/it\/#organization","name":"\u0e28\u0e39\u0e19\u0e22\u0e4c\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e2a\u0e32\u0e23\u0e2a\u0e19\u0e40\u0e17\u0e28\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23 \u0e01\u0e23\u0e21\u0e1b\u0e48\u0e32\u0e44\u0e21\u0e49","url":"https:\/\/www.forest.go.th\/it\/","logo":{"@type":"ImageObject","inLanguage":"th","@id":"https:\/\/www.forest.go.th\/it\/#\/schema\/logo\/image\/","url":"https:\/\/www.forest.go.th\/it\/wp-content\/uploads\/sites\/21\/2023\/02\/new-rfd-web-logo-it.png","contentUrl":"https:\/\/www.forest.go.th\/it\/wp-content\/uploads\/sites\/21\/2023\/02\/new-rfd-web-logo-it.png","width":720,"height":200,"caption":"\u0e28\u0e39\u0e19\u0e22\u0e4c\u0e40\u0e17\u0e04\u0e42\u0e19\u0e42\u0e25\u0e22\u0e35\u0e2a\u0e32\u0e23\u0e2a\u0e19\u0e40\u0e17\u0e28\u0e41\u0e25\u0e30\u0e01\u0e32\u0e23\u0e2a\u0e37\u0e48\u0e2d\u0e2a\u0e32\u0e23 \u0e01\u0e23\u0e21\u0e1b\u0e48\u0e32\u0e44\u0e21\u0e49"},"image":{"@id":"https:\/\/www.forest.go.th\/it\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.forest.go.th\/it\/#\/schema\/person\/5dbc1c984434569a24da99df80b51bc2","name":"Wee","image":{"@type":"ImageObject","inLanguage":"th","@id":"https:\/\/secure.gravatar.com\/avatar\/01458eaaaec34a4081d440b97161c1d5752ffb67e2dbd149e4eed7deb34715da?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/01458eaaaec34a4081d440b97161c1d5752ffb67e2dbd149e4eed7deb34715da?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/01458eaaaec34a4081d440b97161c1d5752ffb67e2dbd149e4eed7deb34715da?s=96&d=mm&r=g","caption":"Wee"},"url":"https:\/\/www.forest.go.th\/it\/blog\/author\/wees\/"}]}},"jetpack_featured_media_url":"https:\/\/www.forest.go.th\/it\/wp-content\/uploads\/sites\/21\/2023\/02\/kube-vip-art.jpg","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.forest.go.th\/it\/wp-json\/wp\/v2\/posts\/3170","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.forest.go.th\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.forest.go.th\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.forest.go.th\/it\/wp-json\/wp\/v2\/users\/181"}],"replies":[{"embeddable":true,"href":"https:\/\/www.forest.go.th\/it\/wp-json\/wp\/v2\/comments?post=3170"}],"version-history":[{"count":7,"href":"https:\/\/www.forest.go.th\/it\/wp-json\/wp\/v2\/posts\/3170\/revisions"}],"predecessor-version":[{"id":3725,"href":"https:\/\/www.forest.go.th\/it\/wp-json\/wp\/v2\/posts\/3170\/revisions\/3725"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.forest.go.th\/it\/wp-json\/wp\/v2\/media\/3722"}],"wp:attachment":[{"href":"https:\/\/www.forest.go.th\/it\/wp-json\/wp\/v2\/media?parent=3170"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.forest.go.th\/it\/wp-json\/wp\/v2\/categories?post=3170"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.forest.go.th\/it\/wp-json\/wp\/v2\/tags?post=3170"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}