使用kubernetes入口来支持多个子域



我有一个域foobar。当我开始我的项目时,我知道我会让我的Web服务器为foobar.com处理流量。此外,我还计划在es.foobar.com上运行一个我想要的弹性搜索服务器。我在GoDaddy购买了我的域名,我(可能提前(购买了foobar.com的单站点证书。我无法将此证书更改为通配符证书。我必须购买一个新证书。我有我的DNS记录为那个简单的URL路由流量。我正在使用Kubernetes管理一切。

问题:

  1. 是否可以将我的简单单站点证书用于主站点和子域(如我的弹性搜索服务器(,或者我是否需要购买另一个专门用于弹性搜索服务器的单站点证书?我早些时候查过了,GoDaddy想要350美元买一个多站点的
  2. ElasticSearch使这一点有些复杂,因为如果在es.foobar.com访问它,并且证书是针对foobar.com的,它会拒绝任何请求,对吧?Elasticsearch需要一个证书才能拥有可靠的安全性

是否可以将我的简单单站点证书用于主站点和子域?

为了实现您的目标,您可以使用Name based virtual hosting ingress,因为您的Web服务器foobar.com和elasticsearches.foobar.com很可能在不同的端口上工作,并且在同一IP下可用。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: name-virtual-host-ingress
spec:
rules:
- host: foobar.com
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: webserver
port:
number: 80
- host: es.foobar.com
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: elastic
port:
number: 9200-9300 #http.port parametr in elastic config

它也可以使用TLS私钥和证书来实现,并为TLS创建一个文件。这只适用于一个级别,如*.foobar.com

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: name-virtual-host-ingress
spec:
tls:
- hosts:
- foobar.com
- es.foobar.com
secretName: "foobar-secret-tls"
rules:
- host: foobar.com
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: webserver
port:
number: 80
- host: es.foobar.com
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: elastic
port:
number: 9200-9300 #http.port parametr in elastic config

您需要为另一个域获取通配符或单独的证书。

相关内容

  • 没有找到相关文章

最新更新