首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Kubernetes服务不可及抛出浏览器

Kubernetes服务不可及抛出浏览器
EN

Stack Overflow用户
提问于 2021-07-29 08:35:38
回答 1查看 628关注 0票数 1

我部署了一个小型K3S集群,其中包含一个主服务器和两个工作人员:

VM是用Multipass制作的。

代码语言:javascript
复制
$ multipass ls
Name                    State             IPv4             Image
master-node             Running           10.200.68.230    Ubuntu 20.04 LTS
                                          10.42.0.0
                                          10.42.0.1
worker01                Running           10.200.68.67     Ubuntu 20.04 LTS
                                          10.42.1.0
                                          10.42.1.1
worker02                Running           10.200.68.227    Ubuntu 20.04 LTS
                                          10.42.2.0
                                          10.42.2.1

集群是用k3sup制作的。

代码语言:javascript
复制
$ kubectl get node
NAME          STATUS   ROLES                       AGE     VERSION
master-node   Ready    control-plane,etcd,master   13m     v1.21.3+k3s1
worker01      Ready    <none>                      10m     v1.21.3+k3s1
worker02      Ready    <none>                      9m46s   v1.21.3+k3s1

工人们都贴上了ols.role=worker标签。

我想在工人节点上安装一个NodeRed服务。我使用了以下命令:

代码语言:javascript
复制
helm repo add k8s-at-home https://k8s-at-home.com/charts/
helm repo update
helm install node-red k8s-at-home/node-red --set nodeSelector."ols\.role"=worker
export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=node-red,app.kubernetes.io/instance=node-red" -o jsonpath="{.items[0].metadata.name}")
while [[ $(kubectl get node $POD_NAME -o 'jsonpath={..status.conditions[?(@.type=="Running")].status}') != "True" ]]; do echo "waiting for pod" && sleep 1; done
kubectl port-forward $POD_NAME 8080:1880&

该服务应该在8080端口上运行。

豆荚的原木看上去没问题:

代码语言:javascript
复制
$ kubectl logs $POD_NAME

> node-red-docker@1.3.5 start /usr/src/node-red
> node $NODE_OPTIONS node_modules/node-red/red.js $FLOWS "--userDir" "/data"

29 Jul 08:20:12 - [info]

Welcome to Node-RED
===================

29 Jul 08:20:12 - [info] Node-RED version: v1.3.5
29 Jul 08:20:12 - [info] Node.js  version: v10.24.1
29 Jul 08:20:12 - [info] Linux 5.4.0-80-generic x64 LE
29 Jul 08:20:12 - [info] Loading palette nodes
29 Jul 08:20:12 - [info] Settings file  : /data/settings.js
29 Jul 08:20:12 - [info] Context store  : 'default' [module=memory]
29 Jul 08:20:12 - [info] User directory : /data
29 Jul 08:20:12 - [warn] Projects disabled : editorTheme.projects.enabled=false
29 Jul 08:20:12 - [info] Flows file     : /data/flows.json
29 Jul 08:20:12 - [warn]

---------------------------------------------------------------------
Your flow credentials file is encrypted using a system-generated key.

If the system-generated key is lost for any reason, your credentials
file will not be recoverable, you will have to delete it and re-enter
your credentials.

You should set your own key using the 'credentialSecret' option in
your settings file. Node-RED will then re-encrypt your credentials
file using your chosen key the next time you deploy a change.
---------------------------------------------------------------------

29 Jul 08:20:12 - [info] Server now running at http://127.0.0.1:1880/
29 Jul 08:20:12 - [info] Starting flows
29 Jul 08:20:12 - [info] Started flows

当我试图访问网页(http://192.168.1.14:8080甚至http://127.0.0.1:1880/)时,服务器会响应一个错误:ERR_CONNECTION_REFUSED

这些服务应该运行:

代码语言:javascript
复制
$ kubectl get services
NAME         TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)    AGE
kubernetes   ClusterIP   10.43.0.1     <none>        443/TCP    32m
node-red     ClusterIP   10.43.18.33   <none>        1880/TCP   26m

还有什么事情可以让它发挥作用吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-29 08:48:13

因为您的服务是群集Ip,所以不能从Kubernetes集群访问该服务。

您必须将您的服务公开为节点端口负载平衡器

https://kubernetes.io/docs/concepts/services-networking/service/

但是,对于本地测试和调试,可以使用以下命令:

代码语言:javascript
复制
kubectl port-forward svc/node-red -n <replace-namespace-name> 1880:1880

一旦命令运行,打开浏览器并打开URL

代码语言:javascript
复制
HTTP://localhost:1880
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68572680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档