如何使用Helm Charts自动配置Kubernetes端口转发?

时间:2019-06-11 21:48:01

标签: kubernetes kubernetes-helm kubernetes-pod

使用Helm,如何将Helm Chart配置为自动包括端口转发?

到目前为止,我看到的文档表明我创建了Helm图表,然后运行...

helm install myhelmchart

...然后手动转发端口...

  export POD_NAME=$(kubectl get pods --namespace default -l "app.kubernetes.io/name=myhelmchart,app.kubernetes.io/instance=pouring-rat" -o jsonpath="{.items[0].metadata.name}")
  echo "Visit http://127.0.0.1:8080 to use your application"
  kubectl port-forward $POD_NAME 8080:80

2 个答案:

答案 0 :(得分:2)

您不能:Helm的操作仅限于使用其模板语言来呈现一些YAML文件集,并将其提交给Kubernetes服务器。 kubectl applykubectl delete只是这种情况。

不过,您可能会发现有用的一个技巧是kubectl port-forward可以使用kubectl 1.10以后的Pod名称以外的其他内容(如果您的群集很旧,这是客户端的功能)您只需要一个足够新的客户端)。它将为您查找合适的吊舱名称。所以你可以

kubectl port-forward service/pouring-rat-nginx 8080:80

我发现kubectl port-forward适用于轻量级测试和调试,并且“如果我发送curl请求,它将按照我想要的方式工作”。它也可以执行一些操作,例如在闲置一段时间后通常关闭,并且由于它是通过HTTP隧道传输TCP,所以这不是最快的事情。设置LoadBalancer类型的服务将是从群集外部设置访问的更好方法。诸如服务类型之类的旋钮以及控制负载均衡器所需的任何注释都是通过Her值公开的好东西。

答案 1 :(得分:0)

定义在job期间在lifecycle中某个点执行的helm installavailable hooks list还包含一个您可能正在寻找的post-install挂钩。可以在官方文档中找到example

基本上,您提供了一个Kubernetes作业,添加了必要的头盔标签,然后添加了如下注释:

apiVersion: ...
kind: ....
metadata:
  annotations:
    "helm.sh/hook": post-install

重要说明:

  • 此作业必须使用安装了kubectl的容器(check this example

  • 此工作应为like this sample

  • 与该作业相关联的服务帐户是为了有效运行kubectl port-forward

另一个通用答案:https://stackoverflow.com/a/55078187/747579

相关问题