【发布时间】:2020-08-17 07:07:04
【问题描述】:
首先,我在本地使用 kubernetes 设置集群。
如https://metallb.universe.tf/installation/所示,我安装了MetalLB,并配置了configmap、deployment和service。
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.3/manifests/namespace.yaml
kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.9.3/manifests/metallb.yaml
# On first install only
kubectl create secret generic -n metallb-system memberlist --from-literal=secretkey="$(openssl rand -base64 128)"
configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
namespace: metallb-system
name: config
data:
config: |
address-pools:
- name: default
protocol: layer2
addresses:
- 192.168.1.240-192.168.1.250
tutorial.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx
spec:
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:1
ports:
- name: http
containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: nginx
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
配置后,当我用kubectl get svc命令查看服务时,有一个带有EXTERNAL-IP的nginx服务。
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 8d
nginx LoadBalancer 10.101.179.72 192.168.143.230 80:32190/TCP 22s
当我输入“192.168.143.230”时,我无法访问该页面并显示“无法访问此站点 192.168.143.230 响应时间过长”。
使用 EXTERNAL-IP 访问该页面应该怎么做?
【问题讨论】:
-
您的防火墙是否打开以允许您通过端口 80 访问该计算机?
-
您的 Kubernetes 集群部署在哪里?
192.168.0.0/16是专用网络,只有在运行集群的机器内部才能访问。 -
@paulopontesm 所有端口都打开了。
-
@AzizAlfoudari 好吧,对不起,我的英语不好,所以,我不明白你在说什么......我在一台机器上设置了集群,我做了一些事情在同一台机器上运行命令,
kubectl get svc,或者访问服务的IP。除了上面的东西,我没有配置任何东西。所以,我不确定,但我认为我无法访问 EXTERNAL-IP,因为我没有设置任何东西...... -
当我使用 'virtualBox' 驱动程序启动 'minikube' 时,我可以访问该页面。我认为这个问题与“minikube 网络”有关。所以,如果我确切地找出问题所在,那么我会写下来。
标签: nginx networking kubernetes metallb