我有一个private
AKS集群,我正在使用nginx入口控制器。到目前为止,我已经做了以下工作。
1.安装nginx入口控制器
NAMESPACE=jananath-test
helm upgrade --install ingress-nginx ingress-nginx \
--repo https://kubernetes.github.io/ingress-nginx --namespace $NAMESPACE --create-namespace
1.使用入口资源创建简单部署
apiVersion: v1
kind: Pod
metadata:
name: nginx-test
labels:
app: nginx-test
spec:
containers:
- name: nginx-test-image
image: nginx:1.14.2
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx-test
spec:
selector:
app: nginx-test
ports:
- protocol: TCP
port: 80
targetPort: 80
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: minimal-ingress
# annotations:
# nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
ingressClassName: nginx
rules:
- host: jananath.test
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: nginx-test
port:
number: 80
以上操作将导致自动创建Azure负载平衡器。
一旦部署,我也可以成功地看到外部IP如下(一个假的IP隐藏我的实际IP如下)
# kubectl get ing
NAME CLASS HOSTS ADDRESS PORTS AGE
minimal-ingress nginx jananath.test 20.6.21.123 80 6m58s
1.由于我还没有域名,我将jananath.test
添加到/etc/hosts
条目中,如下所示:
20.6.21.123 jananath.test
但问题是,当我尝试使用http://jananath.test
/https://jananath.test
访问部署时(可能https无法工作,因为我没有指定任何证书)。
但我够不着,你知道的,浏览器一直在转。
有人能帮我排除故障吗?
入口控制器日志似乎也很好,因为我没有看到任何错误。
这是因为我使用的是私有集群吗?还是入口创建的负载均衡器驻留在AKS集群创建的一个资源组中(部署时),不知何故无法从互联网访问?
非常感谢你们:)
1条答案
按热度按时间vc6uscn91#
我已尝试在public AKS集群和private AKS集群中重现此问题。我可以在这两个集群中使用nginx-ingress服务成功浏览应用程序。
以下是在private AKS群集中重现该文件的步骤。
步骤1:通过启用专用群集选项创建专用AKS群集。x1c 0d1x
步骤2:创建Jump Box以连接到私有集群。我已经创建了ubuntu 20.04VM并安装了kubectl工具。
步骤3:在AKS群集上启动nginx-ingress controller。我已使用helm在群集上部署了ingress controller,它将自动创建负载平衡器服务。
有关创建入口控制器的详细信息,请参阅此link。
**第4步:**我已经在部署入口的名称空间中部署了nginx应用程序。
**步骤5:**创建到应用程序的入口路由。
步骤6:在跳转框的**/etc/hosts文件中添加入口负载平衡器IP地址,以使用DNS名称**解析检查连接。
注意:DNS名称在Internet上不起作用,因为我们在内部主机文件中引用它
**步骤7:**在google中浏览入口负载平衡器IP/[route-name]以检查入口路由。
注意:在本演示中,我将应用程序部署和nginx-ingress部署放在同一名称空间中。