**已关闭。**此问题为not about programming or software development。目前不接受回答。
此问题似乎与a specific programming problem, a software algorithm, or software tools primarily used by programmers无关。如果您认为此问题与another Stack Exchange site的主题相关,可以发表评论,说明在何处可以回答此问题。
上个月就关门了。
Improve this question的
我对K8还很陌生。
我试图让我的应用程序对外界可见。我已经部署了这个Nginx Ingress控制器与我的应用程序,使用Helm和helmfile,它给了我一个外部IP地址和负载均衡器。
据我所知,我现在需要一个ingress resource
来配置路由Map。
我计划使用这个入口资源作为起点。
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: minimal-ingress
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
ingressClassName: nginx-example
rules:
- http:
paths:
- path: /testpath
pathType: Prefix
backend:
service:
name: test
port:
number: 80
字符串
我的应用程序部署在端口80上的单独命名空间中。
我的问题是:我应该把创建资源的yaml放在哪里?
如果可能的话,我想把所有的东西都保存在Helm中,以便更容易地管理配置,所以除非万不得已,我不想使用kubectl
。
我的helmfile
repositories:
- name: stable
url: https://charts.helm.sh/stable
- name: nginx-stable
url: https://helm.nginx.com/stable
releases:
# other apps configured here
- name: ingress-nginx
namespace: ingress
createNamespace: true
chart: nginx-stable/nginx-ingress
values:
- ./ingress/values.yaml
version: 0.10.4
installed: true
型
我的Ingress Controller值.yaml:
---
rbac:
create: true
serviceAccount:
create: true
name: nginx-ingress-public
controller:
ingressClassResource:
enabled: true
default: true
replicaCount: 3
minAvailable: 3
updateStrategy:
rollingUpdate:
maxSurge: 3
maxUnavailable: 0
型
2条答案
按热度按时间m3eecexj1#
您应该只部署一次ingress控制器,因为它可以处理整个集群的 * 所有 * ingress流量。
有时部署多个入口控制器是有意义的,例如我们运行2个入口控制器。1个用于内部流量(私有IP),1个用于外部流量(公共IP)。
一旦你有了它,你只需要告诉你的其他helm版本使用它的ingress类。
ingress manifest通常是你的helm chart的模板。所以你把它放在模板中。如果你做
helm create my-app
,你会得到一个很好的起点,包括ingress。一旦你的图表中有了入口模板,你可以像往常一样为这个模板添加一些合理的默认值到图表的values.yaml中。
在部署图表时,您可以使用某些标志来覆盖默认值,即
-f
和--set
。oxcyiej72#
这是一个使用Ingress的分步指南。
here完整源代码。
第一步:创建 Helm 图
字符串
第二步:安装Ingress控制器
这个命令负责安装它。Reference。
型
将部署一个pod,您可以检查:
型
您需要从这个控制器中获取的信息是
ingressClassName
,您将把它放在values.yaml
文件中,最终将其转换为ingress.yaml
文件。通过运行以下命令查找控制器的
ingressClassName
:kubectl get ingressclasses
或通过K8 Jmeter 板查找它。命令方式:
的数据
** Jmeter 板方式:**
的
第三步:更新
values.yaml
中的ingress段型
第四步:部署
型
进行一次试运行以检查清单,如果一切正常,则运行不带
--dry-run
标志的命令。第五步:更新主机文件
检查您部署的入口,查看分配给主机的地址,因为您将使用该地址更新主机文件。
在控制器日志中也可以看到:
型
现在将这个Map添加到主机文件中(我在mac上使用Vim编辑主机文件)。
型
在主机文件的底部输入服务器IP地址,后跟一个空格,然后输入域名。
的
保存并使用
:wq
退出。第六步:测试APP
现在,您应该能够从集群外部访问应用程序。
例如:http://chart-example.local/my-test-app/weatherforecast
的