Nginx Kubernetes群集应用程序DNS
如果我注册了一个域名Nginx Kubernetes群集应用程序DNS,nginx,kubernetes,google-compute-engine,Nginx,Kubernetes,Google Compute Engine,如果我注册了一个域名www.domain.com,并且我有了新的kubernetes集群并正在运行。我已成功启动部署和服务,以公开需求 该服务正在我的GCE群集上创建一个LoadBalancer,当我尝试通过外部IP访问我的APP时,该服务将正常工作 但这正是我理想中想要实现的: 将我的应用程序的所有流量路由为www.app.domain.com,www.app2.domain.com。经过研究,我发现我需要一个ingres控制器最好是NGINX服务器,我一直在尝试这样做,但失败惨重 这是为我的
www.domain.com
,并且我有了新的kubernetes集群并正在运行。我已成功启动部署
和服务
,以公开需求
该服务正在我的GCE群集上创建一个LoadBalancer
,当我尝试通过外部IP访问我的APP
时,该服务将正常工作
但这正是我理想中想要实现的:
将我的应用程序的所有流量路由为www.app.domain.com
,www.app2.domain.com
。经过研究,我发现我需要一个ingres控制器
最好是NGINX
服务器,我一直在尝试这样做,但失败惨重
这是为我的部署公开JSON的服务:
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": 'node-js-srv'
},
"spec": {
"type": 'LoadBalancer',
"label": {
'app': 'node-js-srv'
},
"ports": [
{
"targetPort": 8080,
"protocol": "TCP",
"port": 80,
"name": "http"
},
{
"protocol": "TCP",
"port": 443,
"name": "https",
"targetPort": 8080
}
],
"selector": {
"app": 'node-js'
},
}
}
GCE/GKE已经有一个
入口控制器
,您可以使用该控制器
您必须将您的服务指定为类型NodePort
,并从类型ingres
见:
你可以在这里找到一个GCE的例子
服务:
{
"kind": "Service",
"apiVersion": "v1",
"metadata": {
"name": 'node-js-srv'
},
"spec": {
"type": 'NodePort',
"label": {
'app': 'node-js-srv'
},
"ports": [
{
"targetPort": 8080,
"protocol": "TCP",
"port": 80,
"name": "http"
},
{
"protocol": "TCP",
"port": 443,
"name": "https",
"targetPort": 8080
}
],
"selector": {
"app": 'node-js'
},
}
}
入口:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: test
spec:
rules:
- host: www.app.domain.com
http:
paths:
- backend:
serviceName: node-js-srv
servicePort: 80
- host: www.app2.domain.com
http:
paths:
- backend:
serviceName: xyz
servicePort: 80
nginx的哪个部分没有工作?反向代理不是吗difficult@cricket_007我还没有弄明白ngnix润滑油部署yaml应该是什么样子。我假设“customdomain.com”是我的注册域…并且我的应用程序负载平衡在“app.customdomain.com”上。。。。我对整个网络和开发操作都很陌生……我不熟悉kubernetes,只是nginx配置。你确定对NodePort的要求吗?当使用入口控制器时,它应该在没有节点端口的情况下工作。此外,设置DNS可能需要更多的工作。DNS记录必须指向GCE/GKE集群公开的内容,即负载平衡器IP或CNAME。不知道谷歌是如何解决这个问题的…在GCE/GKE节点端口上是必需的,请看这里。Ingress使DNS的管理更容易。入口使用IP创建负载平衡器,您可以创建通配符DNS条目,例如.*.domain.com。之后,kubernetes将流量路由到正确的服务。它确实与服务中的NodePort一起工作,并使用子域路由更新DNS通配符。我还有一个问题,如果我想在创建其他入口时使用相同的负载平衡器IP,该怎么办?这是不可能的,问题是为什么要这样做。负载均衡器等于一个入口。您可以将所有服务添加到一个入口。如果您希望使用静态ip,并希望在删除第一个入口后将同一ip分配给另一个入口/LB,则可以将静态ip分配给LB。如下所示: