在我的Windows 11笔记本电脑上,我有两个使用Oracle虚拟盒创建的Ubuntu。我使用kubeadm与这两个Ubuntu建立了一个k8s集群,其中一个是主节点,另一个是工作节点。这两个节点都使用Ubuntu20.04.3LTS和docker://20.10.7运行。我将我的春季引导应用程序部署到k8s集群中,并使用端口30000为我的春季引导应用程序公开了一个节点端口服务,但我不太确定如何在集群之外的internet上访问我的节点端口服务。你能帮我解决这个问题吗?


以下是k8s集群中my节点的IP地址--主节点192.168.254.94和工作者192.168.254.95。我试过使用以下urls,但它们都没有工作。
http://192.168.254.94:30000/swagger-ui.html http://192.168.254.95:30000/swagger-ui.html
上面这些urls会抛出拒绝连接的消息。
http://192.168.9.13:30000/swagger-ui.html http://192.168.9.14:30000/swagger-ui.html
上面的这些urls表示无法到达该站点。
下面是我用于部署spring引导应用程序及其相应服务的application.yaml的内容
apiVersion: apps/v1
kind: Deployment
metadata:
name: dealer-engine
spec:
replicas: 1
selector:
matchLabels:
app: dealer-engine
template:
metadata:
labels:
app: dealer-engine
spec:
containers:
- name: dealer-engine
image: moviepopcorn/dealer_engine:0.0.1
ports:
- containerPort: 9090
env:
- name: MONGO_URL
value: mongodb://mongo-service:27017/mazda
imagePullPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
name: dealer-engine
spec:
type: NodePort
selector:
app: dealer-engine
ports:
- port: 9091
targetPort: 9090
nodePort: 30000
externalIPs:
- 10.0.0.12我是k8s的初学者,所以请帮助我如何在k8s集群之外访问我的节点端口服务。
发布于 2022-02-15 22:09:13
我创建了一个新的简单Springboot应用程序,它返回"Hello!“当调用以下端点"/helloWorld“时,返回给用户。我使用下面的yaml配置将这个春季引导应用程序部署到我的k8s集群中
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-world
spec:
replicas: 1
selector:
matchLabels:
app: hello-world
template:
metadata:
labels:
app: hello-world
spec:
containers:
- name: hello-world
image: moviepopcorn/hello_world:0.0.1
ports:
- containerPort: 9091
imagePullPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
name: hello-world
spec:
type: NodePort
selector:
app: hello-world
ports:
- port: 9091
targetPort: 9091
nodePort: 30001成功部署之后,我可以使用下面的url :访问:
谢谢大家的回答和意见。非常感谢。
发布于 2022-02-14 06:28:03
你有没有安装像法兰绒这样的CNI插件?
如果是,请检查这里的CIDR设置。
kubectl get node k8s-master -o yaml | grep podCIDR:
kubectl get configmap -n kube-system kube-flannel-cfg -o yaml | grep '"Network":'基本上是的CNI是必须的。法兰绒是最简单的。
https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/#pod-network您必须部署一个基于容器网络接口(CNI)的Pod网络附加组件,以便您的Pod可以相互通信。群集DNS (CoreDNS)在安装网络之前不会启动。
# download cni plugin
wget https://github.com/containernetworking/plugins/releases/download/v0.9.1/cni-plugins-linux-amd64-v0.9.1.tgz
sudo mkdir -p /opt/cni/bin
sudo tar -xzvf cni-plugins-linux-amd64-v0.9.1.tgz -C /opt/cni/binkubeadm reset使用cidr设置的10.244.0.0
kubeadm init --pod-network-cidr=10.244.0.0/16kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.ymlhttps://stackoverflow.com/questions/71107426
复制相似问题