Kubernetes Ingress 子域 - Cloudfare 设置
Kubernetes Ingress Subdomain - Cloudfare Setup
所以我有自己的网站 运行ning,我想将我的一项服务迁移到我实际网站的子域下的当前集群,但我遇到了一些麻烦。
我有一个从 NameCheap 购买的网站,我使用 Cloudfare 处理所有 DNS 内容。所以一切都设置正确。我似乎不知道该怎么做才能让我的子域网站真正运行。
我已尝试添加“A”和“CNAME”记录,但仍然无法正常工作。
我也试过关注这个网站,但没有成功。我已经尝试过 cloudfare 发布的其他 Whosebug links 和 links。但是我仍然无法正常工作:
https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nginx-ingress-with-cert-manager-on-digitalocean-kubernetes
我的服务也运行没问题。我的 pods 和部署也很好,没有错误,我的网站已经 运行 正在另一个 link 上运行,我正在删除它以节省资金。 www.ecoders.ca。为了迁移我的服务,我所做的只是将内容添加到我的入口并将所有内容重新部署到我当前的集群。在我当前的集群上,我使用的是 NGINX。
LMK 如果需要更多信息。
Ingress.yaml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
# nginx.ingress.kubernetes.io/rewrite-target: /
name: ingress
spec:
rules:
- host: www.foo.com
http:
paths:
- backend:
serviceName: nk-webapp-service
servicePort: 80
path: /
- backend:
serviceName: stockapp-service
servicePort: 80
path: /stock
- host: www.bar.foo.com <----------- this does not work
http:
paths:
- backend:
serviceName: ecoders-webapi-service
servicePort: 80
path: /
Cloudfare 设置
CNAME -> www -> foo.com
CNAME -> bar -> foo.com
A -> foo.com -> IP ADDRESS
服务设置
apiVersion: apps/v1
kind: Deployment
metadata:
name: ecoders-webapi
spec:
replicas: 1
selector:
matchLabels:
name: ecoders-webapi
template:
metadata:
labels:
name: ecoders-webapi
spec:
containers:
- name: webapi
image: astronik/webservice:latest
imagePullPolicy: Always
ports:
- containerPort: 8080
apiVersion: v1
kind: Service
metadata:
name: ecoders-webapi-service
spec:
type: ClusterIP
ports:
- name: http
port: 80
targetPort: 8080
selector:
name: ecoders-webapi
已更新
Ingress.yaml
- host: www.bar.foo.com
http:
paths:
- backend:
serviceName: ecoders-webapi-service
servicePort: 80
path: /
- host: bar.foo.com
http:
paths:
- backend:
serviceName: ecoders-webapi-service
servicePort: 80
path: /
我也添加了一个“www”link 版本,现在我得到了这个(在我注意到之前):
这跟TLS/SSL有关系吗?意思是我的子域没有证书?
新更新
所以在 Cloudfare 仪表板上的“SSL/TLS”下。一旦我关闭它,我就可以毫无问题地访问我的子域。但是现在我怎样才能把它变成 运行 呢?我的 kubernetes 集群需要证书吗?
已解决
所以一切都解决了,它与 2 个小问题有关。
问题一:
基本上我需要更改我的 DNS 设置添加 www.正在添加另一个子域。我删除了之前创建的 2 个 CNAME 并执行了此操作。
A -> bar -> 10.0.0.0
A -> foo.com -> 10.0.0.0
问题二:
需要更新我的入口以删除此行
nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
已更新 Ingress
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
name: ingress
spec:
rules:
- host: foo.com
http:
paths:
- backend:
serviceName: nk-webapp-service
servicePort: 80
path: /
- backend:
serviceName: stockapp-service
servicePort: 80
path: /stock
- host: bar.foo.com
http:
paths:
- backend:
serviceName: ecoders-web-service
servicePort: 80
path: /
已解决
所以一切都解决了,它与 2 个小问题有关。 Link Cloudfare Page
问题一:
基本上我需要更改我的 DNS 设置添加 www.正在添加另一个子域。我删除了之前创建的 2 个 CNAME 并执行了此操作。
A -> bar -> 10.0.0.0
A -> foo.com -> 10.0.0.0
问题二:
需要更新我的入口以删除此行
nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
已更新 Ingress
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
name: ingress
spec:
rules:
- host: foo.com
http:
paths:
- backend:
serviceName: nk-webapp-service
servicePort: 80
path: /
- backend:
serviceName: stockapp-service
servicePort: 80
path: /stock
- host: bar.foo.com
http:
paths:
- backend:
serviceName: ecoders-web-service
servicePort: 80
path: /
所以我有自己的网站 运行ning,我想将我的一项服务迁移到我实际网站的子域下的当前集群,但我遇到了一些麻烦。
我有一个从 NameCheap 购买的网站,我使用 Cloudfare 处理所有 DNS 内容。所以一切都设置正确。我似乎不知道该怎么做才能让我的子域网站真正运行。
我已尝试添加“A”和“CNAME”记录,但仍然无法正常工作。
我也试过关注这个网站,但没有成功。我已经尝试过 cloudfare 发布的其他 Whosebug links 和 links。但是我仍然无法正常工作: https://www.digitalocean.com/community/tutorials/how-to-set-up-an-nginx-ingress-with-cert-manager-on-digitalocean-kubernetes
我的服务也运行没问题。我的 pods 和部署也很好,没有错误,我的网站已经 运行 正在另一个 link 上运行,我正在删除它以节省资金。 www.ecoders.ca。为了迁移我的服务,我所做的只是将内容添加到我的入口并将所有内容重新部署到我当前的集群。在我当前的集群上,我使用的是 NGINX。
LMK 如果需要更多信息。
Ingress.yaml
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
# nginx.ingress.kubernetes.io/rewrite-target: /
name: ingress
spec:
rules:
- host: www.foo.com
http:
paths:
- backend:
serviceName: nk-webapp-service
servicePort: 80
path: /
- backend:
serviceName: stockapp-service
servicePort: 80
path: /stock
- host: www.bar.foo.com <----------- this does not work
http:
paths:
- backend:
serviceName: ecoders-webapi-service
servicePort: 80
path: /
Cloudfare 设置
CNAME -> www -> foo.com
CNAME -> bar -> foo.com
A -> foo.com -> IP ADDRESS
服务设置
apiVersion: apps/v1
kind: Deployment
metadata:
name: ecoders-webapi
spec:
replicas: 1
selector:
matchLabels:
name: ecoders-webapi
template:
metadata:
labels:
name: ecoders-webapi
spec:
containers:
- name: webapi
image: astronik/webservice:latest
imagePullPolicy: Always
ports:
- containerPort: 8080
apiVersion: v1
kind: Service
metadata:
name: ecoders-webapi-service
spec:
type: ClusterIP
ports:
- name: http
port: 80
targetPort: 8080
selector:
name: ecoders-webapi
已更新
Ingress.yaml
- host: www.bar.foo.com
http:
paths:
- backend:
serviceName: ecoders-webapi-service
servicePort: 80
path: /
- host: bar.foo.com
http:
paths:
- backend:
serviceName: ecoders-webapi-service
servicePort: 80
path: /
我也添加了一个“www”link 版本,现在我得到了这个(在我注意到之前):
这跟TLS/SSL有关系吗?意思是我的子域没有证书?
新更新
所以在 Cloudfare 仪表板上的“SSL/TLS”下。一旦我关闭它,我就可以毫无问题地访问我的子域。但是现在我怎样才能把它变成 运行 呢?我的 kubernetes 集群需要证书吗?
已解决
所以一切都解决了,它与 2 个小问题有关。
问题一:
基本上我需要更改我的 DNS 设置添加 www.正在添加另一个子域。我删除了之前创建的 2 个 CNAME 并执行了此操作。
A -> bar -> 10.0.0.0
A -> foo.com -> 10.0.0.0
问题二:
需要更新我的入口以删除此行
nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
已更新 Ingress
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
name: ingress
spec:
rules:
- host: foo.com
http:
paths:
- backend:
serviceName: nk-webapp-service
servicePort: 80
path: /
- backend:
serviceName: stockapp-service
servicePort: 80
path: /stock
- host: bar.foo.com
http:
paths:
- backend:
serviceName: ecoders-web-service
servicePort: 80
path: /
已解决
所以一切都解决了,它与 2 个小问题有关。 Link Cloudfare Page
问题一:
基本上我需要更改我的 DNS 设置添加 www.正在添加另一个子域。我删除了之前创建的 2 个 CNAME 并执行了此操作。
A -> bar -> 10.0.0.0
A -> foo.com -> 10.0.0.0
问题二:
需要更新我的入口以删除此行
nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
已更新 Ingress
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
name: ingress
spec:
rules:
- host: foo.com
http:
paths:
- backend:
serviceName: nk-webapp-service
servicePort: 80
path: /
- backend:
serviceName: stockapp-service
servicePort: 80
path: /stock
- host: bar.foo.com
http:
paths:
- backend:
serviceName: ecoders-web-service
servicePort: 80
path: /