Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nginx Kubernetes入口子域-Cloudfare设置_Nginx_Kubernetes_Kubernetes Ingress - Fatal编程技术网

Nginx Kubernetes入口子域-Cloudfare设置

Nginx Kubernetes入口子域-Cloudfare设置,nginx,kubernetes,kubernetes-ingress,Nginx,Kubernetes,Kubernetes Ingress,所以我有我自己的网站,我正在运行,我想把我的一个服务迁移到我的实际网站子域下的当前集群,我遇到了一些麻烦 我有一个网站,我购买了名便宜,我使用Cloudfare的所有DNS的东西。所以一切都设置正确。我似乎不知道该怎么做才能让我的子域网站真正运行起来 我试图添加一个“a”和“CNAME”记录,但仍然无法使其工作 我也试着关注这个网站,但没有成功。我尝试了其他stackoverflow链接和cloudfare发布的链接。但我仍然无法让任何东西工作: 我的服务也在顺利运行。我的播客和部署也很好,没

所以我有我自己的网站,我正在运行,我想把我的一个服务迁移到我的实际网站子域下的当前集群,我遇到了一些麻烦

我有一个网站,我购买了名便宜,我使用Cloudfare的所有DNS的东西。所以一切都设置正确。我似乎不知道该怎么做才能让我的子域网站真正运行起来

我试图添加一个“a”和“CNAME”记录,但仍然无法使其工作

我也试着关注这个网站,但没有成功。我尝试了其他stackoverflow链接和cloudfare发布的链接。但我仍然无法让任何东西工作:

我的服务也在顺利运行。我的播客和部署也很好,没有显示任何错误,我的网站已经在另一个链接上运行,为了省钱,我正在删除该链接。通过我的服务进行迁移时,我所做的只是向入口添加内容,并将所有内容重新部署到当前集群。在我当前的集群上,我正在使用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: /


   - 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集群需要一个证书,以便能够在“完全”状态下运行它