首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用helm service.yaml公开应用程序

如何使用helm service.yaml公开应用程序
EN

Stack Overflow用户
提问于 2021-06-15 18:54:14
回答 1查看 347关注 0票数 0

我已经创建了一个Helm Chart来部署我的应用程序,它做得很好,将应用程序暴露给外部世界(我的家乡)我正在使用Traefik

如果我运行helm install命令并输入

代码语言:javascript
复制
kubectl get svc

我得到了预期的输出

代码语言:javascript
复制
n8n-deployment LoadBalancer 10.106.99.168 192.168.222.222 5678:30899/TCP 4s

如果我使用

代码语言:javascript
复制
kubectl describe svc

我可以看到该服务的以下内容

代码语言:javascript
复制
Name: n8n-deployment

Namespace: default

Labels: app.kubernetes.io/instance=n8n-deployment

app.kubernetes.io/managed-by=Helm

app.kubernetes.io/name=n8n-deployment

app.kubernetes.io/version=1.16.0

helm.sh/chart=n8n-0.1.0

Annotations: meta.helm.sh/release-name: n8n-deployment

meta.helm.sh/release-namespace: default

Selector: app.kubernetes.io/instance=n8n-deployment,app.kubernetes.io/name=n8n-deployment

Type: LoadBalancer

IP Family Policy: SingleStack

IP Families: IPv4

IP: 10.106.99.168

IPs: 10.106.99.168

LoadBalancer Ingress: 192.168.222.222

Port: n8nport 5678/TCP

TargetPort: 5678/TCP

NodePort: n8nport 30899/TCP

Endpoints: <none>

Session Affinity: None

External Traffic Policy: Cluster

Events:

Type Reason Age From Message

---- ------ ---- ---- -------

Normal IPAllocated 12s metallb-controller Assigned IP "192.168.222.222"

但是,什么都不起作用。

如果我运行

代码语言:javascript
复制
kubectl delete svc n8n-deployment

然后运行

代码语言:javascript
复制
kubectl expose deploy n8n-deployment --port 5678 --type LoadBalancer

一切按预期运行,我可以看到应用程序了。

第二次运行此命令时,Traefik仪表板将添加另一个路由器。

如果我运行

代码语言:javascript
复制
kubectl describe svc

再说一次,唯一的不同之处在于这条线现在拾取了端点

代码语言:javascript
复制
Endpoints: 172.16.184.171:5678

现在已填充

我的模板/services.yaml如下所示

代码语言:javascript
复制
n8n/templates/service.yaml

apiVersion: v1

kind: Service

metadata:

name: {{ include "n8n.fullname" . }}

labels:

{{- include "n8n.labels" . | nindent 4 }}

spec:

type: {{ .Values.service.type }}

ports:

- port: {{ .Values.service.port }}

targetPort: 5678

protocol: TCP

name: n8nport

selector:

app: n8n-deployment

我错过了什么可以停止helm工作,但是kubectl expose命令将会?

我没有上传所有的东西,但我会很高兴地工作来理解,我是一个菜鸟,以前从来没有运行过helm。我也意识到我应该在事情中使用更多的变量,我正在努力。

EN

回答 1

Stack Overflow用户

发布于 2021-06-15 23:02:38

将我的service.yaml更改为

代码语言:javascript
复制
apiVersion: v1

kind: Service

metadata:


  name: {{ include "n8n.fullname" . }}

  labels:

    {{- include "n8n.labels" . | nindent 4 }}

    app: n8n-deployment

    app.kubernetes.io/instance: n8n-deployment

spec:

  type: {{ .Values.service.type }}

  ports:

    - port: {{ .Values.service.port }}

      targetPort: 5678

      protocol: TCP

  selector:

    run: n8n-deployment

这个很好用,它没有说对

app.kubernetes.io/instance: n8n-deployment

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

https://stackoverflow.com/questions/67984925

复制
相关文章

相似问题

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