大佬教程收集整理的这篇文章主要介绍了如何在 minikube 本地为 asp.net core 应用程序配置部署 yaml 文件上的 https?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个 ASP.NET Core 应用,我想使用 minikube 在本地 kubernetes clustur 中配置 httpS。
部署yaml文件为:
APIVersion: apps/v1
kind: Deployment
Metadata:
name: kube-volume
labels:
app: kube-volume-app
spec:
replicas: 1
SELEctor:
matchLabels:
component: web
template:
Metadata:
labels:
component: web
spec:
containers:
- name: ckubevolume
image: kubevolume
imagePullPolicy: Never
ports:
- containerPort: 80
- containerPort: 443
env:
- name: ASPNETCORE_ENVIRONMENT
value: Development
- name: ASPNETCORE_URLS
value: https://+:443;http://+:80
- name: ASPNETCORE_httpS_PORT
value: '443'
- name: ASPNETCORE_Kestrel__Certificates__Default__password
value: mypass123
- name: ASPNETCORE_Kestrel__Certificates__Default__Path
value: /app/https/aspnetapp.pfx
volumeMounts:
- name: ssl
mountPath: "/app/https"
volumes:
- name: ssl
configMap:
name: game-config
您可以看到我在 yaml 文件中为 https 添加了环境变量。
我还为此部署创建了一个服务。服务的yaml文件为:
APIVersion: v1
kind: service
Metadata:
name: service-1
spec:
type: NodePort
SELEctor:
component: web
ports:
- name: http
protocol: TCP
port: 100
targetPort: 80
- name: https
protocol: TCP
port: 200
targetPort: 443
但不幸的是,当我运行 @H_121_11@minikube service service-1 命令时,该应用没有被服务打开。
但是,当我删除 https 的 env 变量时,该应用程序正在由服务打开。这些是我删除应用程序时打开的行:
- name: ASPNETCORE_URLS
value: https://+:443;http://+:80
- name: ASPNETCORE_httpS_PORT
value: '443'
- name: ASPNETCORE_Kestrel__Certificates__Default__password
value: mypass123
- name: ASPNETCORE_Kestrel__Certificates__Default__Path
value: /app/https/aspnetapp.pfx
我还通过 sHell 确认证书存在于 /app/https 文件夹中。
我做错了什么?
我认为您的方法不适合 Kubernetes 的架构。 TLS 证书(用于 https)与主机名相关联。
我会推荐两种不同方法中的一种:
type: LoadBalancer
服务公开您的应用这通常称为网络负载均衡器,因为它直接为 TCP 或 UDP 公开您的应用。
请参阅 Minikube 文档中的 LoadBalancer access。但请注意,您的应用会从 LoadBalancer 获取外部地址,而您的 TLS 证书可能必须与该地址匹配。
这是 Kubernetes 中最常见的微服务方法。除了您的 type: NodePort
服务之外,您还需要为您的应用创建一个 Ingress resource。
集群需要一个 Ingress 控制器,网关将处理您的 TLS 证书,而不是您的应用。
有关如何在 Minikube 中配置 Ingress 和 TLS 证书的信息,请参阅 How to use custom TLS certificate with ingress addon。
我建议走这条路。
以上是大佬教程为你收集整理的如何在 minikube 本地为 asp.net core 应用程序配置部署 yaml 文件上的 https?全部内容,希望文章能够帮你解决如何在 minikube 本地为 asp.net core 应用程序配置部署 yaml 文件上的 https?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。