jac*_*ngs 5 ansible ansible-awx kubernetes
希望你一切都好,
我目前正在尝试推出awx-operator部署到 Kubernetes 集群上,但在从集群外部访问该服务时遇到了一些问题。
目前我设置了以下服务:
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
Run Code Online (Sandbox Code Playgroud)
我确实设置了一个NodePort名为awx-operator. 我确实尝试创建应用程序的入口。您可以在下面看到:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: awx-ingress
spec:
rules:
- host: awx.mycompany.com
http:
paths:
- path: /
pathType: Prefix
backend:
service:
name: awx
port:
number: 80
Run Code Online (Sandbox Code Playgroud)
当我创建入口然后运行时kubectl describe ingress,我得到以下输出:
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>
Run Code Online (Sandbox Code Playgroud)
现在我不太确定是否default-http-backend:80错误是否是转移注意力,因为我在很多地方都看到过这种情况,而且他们似乎并不太担心,但如果我错了,请纠正我。
请告诉我是否还有其他方法可以解决此问题,我会尽快回复您。
你是对的,空白地址就是这里的问题。在传统的云环境中,网络负载均衡器可按需使用,单个 Kubernetes 清单足以为 NGINX Ingress 控制器与外部客户端提供单点联系,并间接为集群内运行的任何应用程序提供单点联系。
另一方面,裸机环境缺乏此选项,需要您进行稍微不同的设置才能为外部消费者提供相同类型的访问:

这意味着您必须做一些额外的体操才能使入口正常工作。这里基本上有两个主要选项(这里都有详细描述):
这里发生的情况是,您基本上使用NodePort与您的入口控制器 Pod 匹配的选择器创建一个服务类型,然后它将流量相应地路由到您的入口对象:
# Source: ingress-nginx/templates/controller-service.yaml
apiVersion: v1
kind: Service
metadata:
annotations:
labels:
helm.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/component: controller
name: ingress-nginx-controller
namespace: ingress-nginx
spec:
type: NodePort
ports:
- name: http
port: 80
protocol: TCP
targetPort: http
- name: https
port: 443
protocol: TCP
targetPort: https
selector:
app.kubernetes.io/name: ingress-nginx
app.kubernetes.io/instance: ingress-nginx
app.kubernetes.io/component: controller
Run Code Online (Sandbox Code Playgroud)
如果您想跳过入口,您可能只是使用该nodePort服务 awx并直接访问它。
| 归档时间: |
|
| 查看次数: |
4498 次 |
| 最近记录: |