我刚刚在一个vmware
虚拟服务器上安装了Ubuntu 22.04
,并开始使用microk8s
,该服务器是本地网络的一部分,在该网络中有一些服务器,包括处理网络的microsoft AD
和IIS
服务器。
我在ubuntu
系统上安装了docker
,可以通过docker
运行web应用的所有容器,没有任何问题。(一个容器),连接到本地网络的windows AD
服务器,对web应用程序的用户进行身份验证。在主机上,它工作正常,可以到达X1 M9 N1 X服务器以及网络中的其他服务器,并执行所有必要的操作。
另一方面,当通过microk8s
在kubernetes
上运行时,所有服务都可以工作,它们都可以从本地网络访问,而同时容器可以访问外部网络(在我们的本地网络之外,例如www.google.com)。只有内部网络似乎不可访问,对此我总是得到超时错误。
我尝试的内容(但不起作用)
- 外部服务[1][2]
- 检查复制到容器中的主机上的dns解析
注意:
我不确定应该运行什么类型的命令来提供关于配置的最有用的信息,所以我将重复这个问题,用日志和其他有意义的信息来扩展它。
谢谢
编辑2022年11月10日
我已经启用了以下插件
microk8s is running
high-availability: no
datastore master nodes: 127.0.0.1:19001
datastore standby nodes: none
addons:
enabled:
dns # (core) CoreDNS
ha-cluster # (core) Configure high availability on the current node
helm # (core) Helm - the package manager for Kubernetes
helm3 # (core) Helm 3 - the package manager for Kubernetes
ingress # (core) Ingress controller for external access
metallb # (core) Loadbalancer for your Kubernetes cluster
另一个奇怪的事情是,容器可以通过主机的IP地址(10.1.1.xxx)访问主机上的postgres
数据库
编辑2 2022年12月10日
这是入口yaml
文件
apiVersion: v1
kind: Service
metadata:
name: ingress
namespace: ingress
spec:
selector:
name: nginx-ingress-microk8s
type: LoadBalancer
ports:
- name: http
protocol: TCP
port: 80
targetPort: 80
- name: https
protocol: TCP
port: 443
targetPort: 443
---
#
# Ingress
#
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: main-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
rules:
- http:
paths:
- path: /api/erp(/|$)(.*)
pathType: Prefix
backend:
service:
name: erp-service
port:
number: 8000
- path: /api/auth(/|$)(.*)
pathType: Prefix
backend:
service:
name: auth-service
port:
number: 8000
- path: /()(.*)
pathType: Prefix
backend:
service:
name: ui-service
port:
number: 3000
我可以访问UI,并且通过使用主机的ip
和/api/auth
,我可以访问swagger/openapi的在线文档。[1]:https://kubernetes.io/docs/concepts/services-networking/service/#services-without-selectors
1条答案
按热度按时间yb3bgrhw1#
到目前为止,我还没有找到任何解决方案,只能绕过请求并使用“代理”
endpoint
,如Accessing an external InfluxDb Database from a microk8s pod using selectorless service and manual endpoint?
基本上,它创建一个服务,该服务可由群集访问,并创建一个指向外部资源的终结点。
从应答中获取的实际源配置
如果我能找到解决方案,我会更新此答案