首页 > 解决方案 > Kubernetes nginx ingress redirect domains to cluster

问题描述

I want to redirect two namecheap domains testA.com and testB.com to two different services (websites) on my raspberry pi cluster.

I set everything up using an updated form from this guide. This means that k3s, metalb, nginx ingress and cert-manager are fully deployed and working.

% kubectl get pods --all-namespaces
NAMESPACE      NAME                                                      READY   STATUS    RESTARTS   AGE
kube-system    metallb-speaker-bsxfg                                     1/1     Running   1          30h
kube-system    metallb-speaker-6pwsb                                     1/1     Running   1          30h
kube-system    nginx-ingress-ingress-nginx-controller-7cc994599f-db285   1/1     Running   1          28h
cert-manager   cert-manager-7998c69865-754mr                             1/1     Running   2          27h
kube-system    metallb-speaker-z8p97                                     1/1     Running   1          30h
webserver      httpd-554794f9fd-npd4g                                    1/1     Running   1          21h
kube-system    metallb-controller-df647b67b-2khlr                        1/1     Running   1          30h
kube-system    coredns-854c77959c-dl74f                                  1/1     Running   2          33h
cert-manager   cert-manager-webhook-7d6d4c78bc-97g2g                     1/1     Running   1          27h
kube-system    metrics-server-86cbb8457f-2vqmt                           1/1     Running   3          33h
cert-manager   cert-manager-cainjector-7b744d56fb-bvwjd                  1/1     Running   2          27h
kube-system    local-path-provisioner-5ff76fc89d-vbqs9                   1/1     Running   4          33h
% kubectl get services  -n kube-system -o wide                     
NAME                                               TYPE           CLUSTER-IP      EXTERNAL-IP       PORT(S)                      AGE   SELECTOR
nginx-ingress-ingress-nginx-controller-admission   ClusterIP      10.43.116.250   <none>            443/TCP                      28h   app.kubernetes.io/component=controller,app.kubernetes.io/instance=nginx-ingress,app.kubernetes.io/name=ingress-nginx
nginx-ingress-ingress-nginx-controller             LoadBalancer   10.43.10.136    192.168.178.240   80:31517/TCP,443:31733/TCP   28h   app.kubernetes.io/component=controller,app.kubernetes.io/instance=nginx-ingress,app.kubernetes.io/name=ingress-nginx

The guide describes it for dynDNS. How should I do this if I had two domains and two different websites. Is this done with a containerised certbot? Or do I need CNAME?

标签: nginxsslkubernetes

解决方案


您可以运行该命令并检查外部或暴露给 Internet IP的LoadBalancer IP。

你可以将此IP作为A记录或CNAME记录到DNS端,你就完成了。您的两个域都将流量指向 Kubernetes 集群,并且在 Kubernetes 内部,您可以创建入口路由或记录以将流量转移到特定服务。


推荐阅读