nginx - Kubernetes:使用 Let's Encrypt 公开 NGINX Ingress
问题描述
我正在尝试使用证书管理器设置 LetsEncrypt SSL 证书。我已通过 Helm 成功部署 Cert Manager 并坚持配置ingress.yaml
.
$ sudo kubectl create --edit -f https://raw.githubusercontent.com/jetstack/cert-manager/master/docs/tutorials/quick-start/example/ingress.yaml
我有这个:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
name: kuard
namespace: default
spec:
rules:
- host: example.example.com
http:
paths:
- backend:
serviceName: kuard
servicePort: 80
path: /
tls:
- hosts:
- example.example.com
secretName: quickstart-example-tls
所以我只是将主机从 example.com 替换为我的外部 IP 并得到了这个:
A copy of your changes has been stored to "/tmp/kubectl-edit-qx3kw.yaml"
The Ingress "kuard" is invalid: spec.rules[0].host: Invalid value: must be a DNS name, not an IP address
有什么方法可以只使用我的外部 IP 进行设置吗?我还没有为我的应用选择域名,只想使用普通 IP 进行演示和玩耍。
解决方案
不可以。您不能为 Ingress 使用 IP 地址。要使用 IP 地址,您需要将其配置为指向您的工作节点并创建一个 NodePort 服务,这将允许您浏览到http://IP:NODEPORT
.
推荐阅读
- kubernetes - 为什么 Kubernetes HPA 没有缩减(内存)?
- jobs - Snakemake:并行提交作业时规则中共享文件的随机 FileNotFoundError
- power-bi-report-server - 单击订阅时出现错误日志事件 137 和 108
- python - 使用 numpy.argwhere 去除异常值
- rpa - RPA AA 中的每一天都需要在特定时间执行相同的任务
- user-interface - 如何将 GUI 放入 joptionpane?
- python - 如何使用 matplotlib 绘制 HSV 色轮
- tensorflow - 使用自定义数据集量化大小问题训练的 mobilenetv1
- oracle - 将oracle 11g数据库转储文件导入18c XE,导入成功但找不到数据或用户
- java - 如何在 POM.xml 中更改没有根文件夹的 url 本地存储库