Kubernetes公开应用程序-AWX运算符
希望大家都好, 我目前正试图在Kubernetes集群上推出该服务,但在从集群外部访问该服务时遇到了一些问题 目前,我已设置了以下服务:Kubernetes公开应用程序-AWX运算符,kubernetes,ansible,ansible-awx,Kubernetes,Ansible,Ansible Awx,希望大家都好, 我目前正试图在Kubernetes集群上推出该服务,但在从集群外部访问该服务时遇到了一些问题 目前,我已设置了以下服务: NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE awx NodePort 10.102.30.6 <none> 8080:32155/TCP
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
awx NodePort 10.102.30.6 <none> 8080:32155/TCP 110m
awx-operator NodePort 10.110.147.152 <none> 80:31867/TCP 125m
awx-operator-metrics ClusterIP 10.105.190.155 <none> 8383/TCP,8686/TCP 3h17m
awx-postgres ClusterIP None <none> 5432/TCP 3h16m
awx-service ClusterIP 10.102.86.14 <none> 80/TCP 121m
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 17h
当我创建入口,然后运行kubectl descripe ingres
,我得到以下输出:
Name: awx-ingress
Namespace: default
Address:
Default backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
Host Path Backends
---- ---- --------
awx.mycompany.com
/ awx:80 (10.244.1.8:8080)
Annotations: <none>
Events: <none>
名称:awx入口
名称空间:默认值
地址:
默认后端:默认http后端:80()
规则:
主机路径后端
---- ---- --------
awx.mycompany.com
/awx:80(10.244.1.8:8080)
注释:
活动:
现在我不太确定默认http后端:80
错误是否是一个危险因素,因为我在很多地方都看到了这一点,他们似乎并不太担心,但如果我错了,请纠正我
请告诉我,我还能做些什么来解决这个问题,我会尽快回复你。 < P>你是对的,空白地址是这里的问题。在传统的云环境中,网络负载平衡器可按需提供,单个Kubernetes清单足以为NGINX入口控制器、外部客户端以及集群内运行的任何应用程序提供单点联系 另一方面,裸机环境缺少此选项,要求您采用稍微不同的设置,以提供与外部使用者相同的访问方式: 这意味着你必须做一些额外的体操,以使进入工作。这里基本上有两个主要选项(都有很好的描述):
- 纯软件解决方案:
- 通过服务
NodePort
,带有与入口控制器pod匹配的选择器,然后它将流量相应地路由到入口对象:
#来源:ingress nginx/templates/controller-service.yaml
版本:v1
种类:服务
元数据:
注释:
标签:
舵手:sh/chart:ingress-nginx-3.30.0
app.kubernetes.io/name:ingress nginx
app.kubernetes.io/instance:ingress nginx
app.kubernetes.io/version:0.46.0
app.kubernetes.io/managed-by:Helm
app.kubernetes.io/组件:控制器
名称:ingress nginx控制器
名称空间:ingress nginx
规格:
类型:节点端口
端口:
-名称:http
港口:80
协议:TCP
targetPort:http
-名称:https
港口:443
协议:TCP
目标端口:https
选择器:
app.kubernetes.io/name:ingress nginx
app.kubernetes.io/instance:ingress nginx
app.kubernetes.io/组件:控制器
可以找到服务的完整nginx部署
如果您希望跳过入口,您可能只需使用
nodePort
服务awx
并直接到达它。您可以忽略默认后端。您可能为入口选择了错误的服务/端口。请使用端口80
尝试awx服务
,或使用端口8080
尝试awx服务
。感谢您的帮助,我现在将尝试它,但在尝试之前。我见过几个地方使用kubectl create
而不是kubectl apply
。区别是什么?在awx服务上运行入口时看到这个答案,在端口80上我在运行kubectl get ingress
时得到以下输出:名称类主机地址端口年龄awx ingress awx.mycompany.com 80 72s
我感觉到地址是空的是问题所在。
Name: awx-ingress
Namespace: default
Address:
Default backend: default-http-backend:80 (<error: endpoints "default-http-backend" not found>)
Rules:
Host Path Backends
---- ---- --------
awx.mycompany.com
/ awx:80 (10.244.1.8:8080)
Annotations: <none>
Events: <none>