正在尝试为Rancher 2.X配置Nginx-从Rancher 1.X迁移

正在尝试为Rancher 2.X配置Nginx-从Rancher 1.X迁移,nginx,kubernetes,rancher,Nginx,Kubernetes,Rancher,目前我在工作中使用rancher 1.x,我已经迁移到rancher 2x。我很难理解如何将它迁移到rancher 2.X,或者是否需要重新配置一切。 我使用迁移工具创建yaml文件,它为每个应用程序创建了2个文件、一个部署和一个服务 在rancher 2.x上添加服务文件时,它使用群集Ip创建了每个服务,创建了端口映射,其中发布服务端口作为my rancher 1x公共主机端口,目标端口作为my rancher 1.x专用容器端口 但是,目前我正在为不同版本的应用程序使用Nginx,并通过环境

目前我在工作中使用rancher 1.x,我已经迁移到rancher 2x。我很难理解如何将它迁移到rancher 2.X,或者是否需要重新配置一切。 我使用迁移工具创建yaml文件,它为每个应用程序创建了2个文件、一个部署和一个服务

在rancher 2.x上添加服务文件时,它使用群集Ip创建了每个服务,创建了端口映射,其中发布服务端口作为my rancher 1x公共主机端口,目标端口作为my rancher 1.x专用容器端口

但是,目前我正在为不同版本的应用程序使用Nginx,并通过环境/堆栈为每个应用程序定位它们,下面是我当前Nginx.conf的一个示例

worker_processes 1;

error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;

events {
worker_connections 1024;
}

http {

server {
listen 80;

  #Aplication version 1
   location /environment1/applicationStack{
       proxy_pass http://<ipAdress for environment1 host>:3000/;
   }

  #Aplication version 2
   location /environment2/applicationStack{
       proxy_pass http://<ipAdress for environment2 host>:3000/;
   }

   #rancher
   location /rancher {
       rewrite ^([^.]*[^/])$ $1/ permanent;
       rewrite ^/rancher/(.*)$ /$1 break;
       proxy_pass      http://<ipAdress for enviroment with nginx>:8080;
       proxy_redirect  off;
       proxy_set_header Host $host;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   }
}
}

worker\u进程1;
error\u log/var/log/nginx/error.log warn;
pid/var/run/nginx.pid;
事件{
工人(1024);;
}
http{
服务器{
听80;
#应用程序版本1
位置/环境1/应用程序策略{
代理传递http://:3000/;
}
#应用程序版本2
位置/环境2/应用程序策略{
代理传递http://:3000/;
}
#牧场主
地点/牧场主{
重写^([^.]*[^/])$$1/永久;
重写^/rancher/(.*)$/$1段;
代理传递http://:8080;
代理_重定向关闭;
代理设置头主机$Host;
proxy\u set\u header X-Forwarded-For$proxy\u add\u X\u Forwarded\u For;
}
}
}
例如,如果我想连接到每个应用程序,它将是rancherDNS:8080/environmentVersion/stackName 我很难理解如何将它迁移到rancher 2.X,或者是否需要重新配置一切。如何配置nginx文件?我是否应该将每个服务群集IP与目标端口一起使用?还是发布端口?或者这个集群不是我应该配置的


另一件事是,我们目前在Travis中使用CI,如果Travis在部署中发布了一个新的pod,这不会影响我的服务,对吗?

1.6.x中的环境将映射到2.x中的多个Kubernetes集群

您可以将1.6.x堆栈转换为2.x的部署或守护程序规范。然后您可以创建一个入口对象来访问它们。创建入口时,您可以直接指定主机名/fqdn,这样您就不必使用当前的nginx

如果希望使用当前的nginx,可以跳过在入口对象中指定fqdn/主机名,并使用集群的主机IP地址

想法:(您需要参考以探索各种入口选项,并为您的用例选择正确的入口)

#应用程序版本1
位置/附件1{
代理通过http://:80/app1;
}
此外,如果您想详细了解Ingress,您可能会发现我的演讲录音很有用:


谢谢!我将尝试使用入口配置它们,它看起来更适合我的需要。
#Aplication version 1
   location /app1 {
       proxy_pass http://<ipAdress k8s cluster 1 host>:80/app1;
   }