Nginx Kubernetes入口子域-Cloudfare设置
所以我有我自己的网站,我正在运行,我想把我的一个服务迁移到我的实际网站子域下的当前集群,我遇到了一些麻烦 我有一个网站,我购买了名便宜,我使用Cloudfare的所有DNS的东西。所以一切都设置正确。我似乎不知道该怎么做才能让我的子域网站真正运行起来 我试图添加一个“a”和“CNAME”记录,但仍然无法使其工作 我也试着关注这个网站,但没有成功。我尝试了其他stackoverflow链接和cloudfare发布的链接。但我仍然无法让任何东西工作: 我的服务也在顺利运行。我的播客和部署也很好,没有显示任何错误,我的网站已经在另一个链接上运行,为了省钱,我正在删除该链接。通过我的服务进行迁移时,我所做的只是向入口添加内容,并将所有内容重新部署到当前集群。在我当前的集群上,我正在使用NGINX 如果需要更多信息,请联系LMK Ingress.yamlNginx Kubernetes入口子域-Cloudfare设置,nginx,kubernetes,kubernetes-ingress,Nginx,Kubernetes,Kubernetes Ingress,所以我有我自己的网站,我正在运行,我想把我的一个服务迁移到我的实际网站子域下的当前集群,我遇到了一些麻烦 我有一个网站,我购买了名便宜,我使用Cloudfare的所有DNS的东西。所以一切都设置正确。我似乎不知道该怎么做才能让我的子域网站真正运行起来 我试图添加一个“a”和“CNAME”记录,但仍然无法使其工作 我也试着关注这个网站,但没有成功。我尝试了其他stackoverflow链接和cloudfare发布的链接。但我仍然无法让任何东西工作: 我的服务也在顺利运行。我的播客和部署也很好,没
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: /
- 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: /
服务设置
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
已更新
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: /
- 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”链接版本,现在我得到了这个(在我没有得到任何东西之前):
这是否与TLS/SSL有关?意思是我的子域没有证书
新更新
因此,在Cloudfare仪表板上的“SSL/TLS”下。一旦我关掉它,我就可以毫无问题地访问我的子域了。但是现在我怎样才能让它满负荷运行呢?我的kubernetes群集是否需要证书
已解决
所以这一切都是固定的,只有两个小问题
问题1:
基本上,我需要更改我的DNS设置添加www。我正在添加另一个子域。我删除了我之前创建的2个CNAME,并执行了此操作
A -> bar -> 10.0.0.0
A -> foo.com -> 10.0.0.0
A -> bar -> 10.0.0.0
A -> foo.com -> 10.0.0.0
问题2:
需要更新我的入口以删除此行
nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
更新的入口
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: /
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: /
已解决
所以这一切都是固定的,只有两个小问题
问题1:
基本上,我需要更改我的DNS设置添加www。我正在添加另一个子域。我删除了我之前创建的2个CNAME,并执行了此操作
A -> bar -> 10.0.0.0
A -> foo.com -> 10.0.0.0
A -> bar -> 10.0.0.0
A -> foo.com -> 10.0.0.0
问题2:
需要更新我的入口以删除此行
nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
更新的入口
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: /
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: /
我首先要将nginx入口更新到新版本。检查链接,让我知道它是否解决了它。不,没有区别。改变加密方式有效。但是现在我假设我的子域/Kubernetes集群需要一个证书,以便能够在“完全”状态下运行它