目前,我在工作中使用rancher 1.x,我正在迁移到rancher 2x。我很难理解如何将其迁移到rancher 2.X,或者是否需要重新配置所有内容。我使用迁移工具创建了我的yaml文件,它为每个应用程序创建了2个文件,一个部署和一个服务。
当在rancher 2.x上添加服务文件时,它创建了具有集群Ip的每个服务,创建了端口映射,其中发布服务端口作为我的Rancher 1x公共主机端口,目标端口作为我的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;
}
}
}因此,例如,如果我想连接到每个应用程序,它将是rancherDNS:8080/environmentVersion/stackName,我很难理解如何将其迁移到rancher 2.X,或者是否需要重新配置所有内容。如何配置nginx文件?我应该将每个服务ClusterIp与目标端口一起使用吗?还是发布端口?或者这个ClusterIp甚至不是我应该配置的?
另一件事是,我们目前在Travis中使用CI,如果Travis在部署中发布了一个新的pod,这不会影响我的服务,对吧?
发布于 2019-07-31 22:40:33
1.6.x中的环境将映射到2.x中的多个Kubernetes集群。
您可以将您的1.6.x堆栈转换为2.x的部署或DaemonSet规范。然后,您可以创建一个入口对象来访问它们。在创建入口时,您可以直接指定hostname/fqdn,这样就不必使用当前的nginx。
如果您更喜欢使用当前的nginx,您可以跳过在ingress对象中指定fqdn/hostname,而使用集群的主机IP地址。
想法:(您需要参考documentation来探索各种入口选项,并为您的用例选择正确的选项)
#Aplication version 1
location /app1 {
proxy_pass http://<ipAdress k8s cluster 1 host>:80/app1;
}另外,如果你想详细了解Ingress,你可能会发现我的演讲录音很有用:
https://stackoverflow.com/questions/57274063
复制相似问题