我正在寻找 microk8s 来托管我的应用程序,它将使用入口。目前它部署在 AWS 上用于开发系统,很快将迁移到 Onprem 系统
要访问应用程序,我只需提供 AWS 的外部主机名,它就会毫无问题地拉出应用程序页面。
kubectl create deployment web --image=gcr.io/google-samples/hello-app:1.0
kubectl expose deployment web --type=NodePort --port=8080
web NodePort 10.152.183.37 <none> 8080:30631/TCP 34m
web2 NodePort 10.152.183.226 <none> 8080:30881/TCP 25m
现在,如果我使用 AWS 主机名,它会按预期显示
Hello, world!
Version: 2.0.0
Hostname: web2-8474c56fd-kb8nx
到目前为止,一切都按预期工作。现在在 Microk8s 上,我创建了一个具有以下详细信息的 Ingress:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: http-ingress
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: web
servicePort: 8080
- path: /v2
backend:
serviceName: web2
servicePort: 8080
这也按预期工作。
现在有没有一种方法可以将 AWS 主机名 ec2- - -**- .us-east-2.compute.amazonaws.com 屏蔽为我想要选择或自定义的内容。例如 a3.myweb.com
我看到这在 minikube/kubernetes 中使用“host”属性是可能的
用自定义名称屏蔽 AWS/anyserver 的主机名的最佳方法是什么???
由于我们使用 NGINX 作为反向代理,因此我们可以通过在 conf.d/ssl.conf 文件中提供主机名来做到这一点
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name a1-staging.mycomp.com;
ssl_certificate /etc/pki/tls/certs/a1.crt;
ssl_certificate_key /etc/pki/tls/private/a1.key;
我可以使用 Ingress 或社区建议的其他任何东西在 micok8s 设置中实现类似的东西吗???
谢谢你,阿尼什