我是 kubernetes 新手,我正在尝试编写 file.yaml 以在我的 kubernetes 集群上公开 the-hive 服务。文件如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: thehive-deployment
spec:
replicas: 1
selector:
matchLabels:
app: thehive
template:
metadata:
labels:
app: thehive
spec:
containers:
- name: thehive
image: strangebee/thehive:5.2
ports:
- containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: thehive-service
spec:
type: LoadBalancer
selector:
app: thehive
ports:
- name: http
protocol: TCP
port: 80
targetPort: 80
pod、部署和服务运行成功。但是当我去做
minikube service thehive-service
并给我一个地址时,浏览器说:“无法访问该网站”。我想了解我做错了什么。
这一切都取决于您在何处以及如何配置 kubernetes 集群,让我进一步补充一下 先生。 David Maze 提出了建议。假设您已经按照以下情况配置了 kubernetes 集群:
案例1:如果您使用docker桌面作为minikube的容器运行时并将其部署在本地系统上,如David Maze建议,您可以使用docker命令公开应用程序并尝试访问通过使用该系统的浏览器。
即使在暴露之后,如果您仍然无法访问您的应用程序,请检查应用程序是否正常运行,您可以通过查看 docker 日志来验证这一点。
检查是否启用了任何 apparmor、UFW 或 SElinux 规则,或导致应用程序端口到达外部时出现问题。
案例 2:如果您已将应用程序部署在虚拟机内,并且您已在任何云提供商上配置该虚拟机,并且正在尝试从本地系统访问该应用程序。无法使用本地主机访问应用程序,您需要获取部署应用程序的虚拟机的公共 IP 地址,并配置必要的防火墙规则以将该应用程序公开到外部。
注意: 如果您使用任何 Playground 来练习 Kubernetes,您的应用程序不能暴露在该 Playground 之外。