首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在K3S安装中访问内部资源的最简单方法

在K3S安装中访问内部资源的最简单方法
EN

Stack Overflow用户
提问于 2022-06-08 06:41:42
回答 2查看 395关注 0票数 0

前言:我知道这有点重复(这个问题在这里已经问了很多次了,不同版本),但我真的找不到一个明确的答案,这是如何处理裸金属。

问题:我希望能够访问内部服务,而不需要为每个服务进行转发。比如访问loki或traefik仪表板。安装程序正在裸金属服务器上运行标准K3S。大多数答案和指南都集中在基于云的负载平衡器上,但是很明显,这个选项对我来说是不可用的。

解决这个问题似乎有很多种方法,但最简单的方法是什么呢?绑定到VPN接口的第二个入口控制器?负载平衡器(哪一个?)

我真的很感激你的指导!

EN

回答 2

Stack Overflow用户

发布于 2022-06-09 02:35:39

在主机上公开k3s服务的最简单方法就是创建一个LoadBalancer服务。您实际上不需要安装任何类型的负载均衡器;这将在主机上公开您的服务端口。

例如,启动一个吊舱:

代码语言:javascript
运行
复制
k3s kubectl run --image docker.io/alpinelinux/darkhttpd:latest --port 8080 webtest

创建一个服务:

代码语言:javascript
运行
复制
k3s kubectl expose pod webtest --target-port 8080 --name webtest --type=LoadBalancer

这样我们就有了一份清单,看起来像是:

代码语言:javascript
运行
复制
apiVersion: v1
kind: Service
metadata:
  labels:
    run: webtest
  name: webtest
  namespace: default
spec:
  allocateLoadBalancerNodePorts: true
  clusterIP: 10.43.234.34
  clusterIPs:
  - 10.43.234.34
  externalTrafficPolicy: Cluster
  internalTrafficPolicy: Cluster
  ipFamilies:
  - IPv4
  ipFamilyPolicy: SingleStack
  ports:
  - nodePort: 31647
    port: 8080
    protocol: TCP
    targetPort: 8080
  selector:
    run: webtest
  sessionAffinity: None
  type: LoadBalancer
status:
  loadBalancer:
    ingress:
    - ip: 192.168.122.136

现在在我的k3s主机上,我可以:

代码语言:javascript
运行
复制
$ curl localhost:8080
<html>
<head>
 <title>/</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
...

或者从我网络上的其他地方:

代码语言:javascript
运行
复制
$ curl 192.168.1212.136:8080
<html>
<head>
 <title>/</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
...
票数 1
EN

Stack Overflow用户

发布于 2022-06-20 09:20:01

最后,问题在于如何将来自我的有线接口的流量路由到k3s。在修复了路线之后,我就可以访问公开的服务了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72541143

复制
相关文章

相似问题

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