首页 > 其他分享 >使用AGIC发布AKS应用-HTTPS

使用AGIC发布AKS应用-HTTPS

时间:2023-02-23 12:00:41浏览次数:31  
标签:kubectl nginx AGIC AKS 部署 HTTPS

前面和大家聊了使用Application Gateway Ingress Controller(以下简称:AGIC)以HTTP的形式将AKS群集内的业务系统发布到Internet以供用户使用。但是在实际的生产场景中,处于安全角度考量,其实客户很少将Web服务以HTTP的形式对外暴露,主要会使用HTTPS的形式对外发布应用。

我们知道HTTPS的服务非常安全,Google 现在对非HTTPS的服务默认是拒绝的,而且还能避免国内各种乱七八糟的劫持,所以以HTTPS的形式对外暴露服务真的时非常有必要的。在AKS中,因为AGIC是一个7层的负载均衡,所以支持以HTTPS的形式对外暴露AKS群集内的服务。当AGIC接受来自客户端的 HTTPS 请求时,客户端与AGIC之间的流量使用 TLS 进行加密。但是,AGIC可终止 TLS 加密,并将未加密的请求转发给应用,这样我们就在AGIC上实现了HTTPS卸载的动作。

先决条件

若想使用AGIC以HTTPS的形式对外发布AKS群集内的应用,需要满足如下先决条件:

  • 一个启用了AGIC的AKS群集
  • 一个配置解析到AGIC的公网域名
  • 一个公网域名所对应的证书
部署应用程序

满足了上述先决条件以后我们就需要向AKS内部署一个实例的应用程序,本次我们以NGINX为例进行部署。

编写yaml文件,部署NGINX Pod和Service,具体如下所示:

apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
app: nginx
spec:
containers:
- image: nginx
name: nginx
ports:
- containerPort: 80
protocol: TCP

---

apiVersion: v1
kind: Service
metadata:
name: nginx
spec:
selector:
app: nginx
type: LoadBalancer
ports:
- protocol: TCP
port: 80
targetPort: 80

yaml编写好以后,使用 kubectl apply -f 进行部署:

使用AGIC发布AKS应用-HTTPS_Network

部署完成以后可以使用kubectl get pod和kubectl get svc进行查看,可以看到资源已经部署成功:

使用AGIC发布AKS应用-HTTPS_Application Gateway_02


准备证书

若要将服务以HTTPS的形式对外进行暴露,我们需要给所使用的域名配置相关证书,建议大家使用公网证书进行服务的发布。当前我已经准备了相应的证书:

使用AGIC发布AKS应用-HTTPS_Azure_03

证书准备好以后,我们需要将其部署到AKS群集内,证书在群集内是以secret的形式存在的,所以我们需要创建一个secret,具体方式如下:

kubectl create secret tls

使用AGIC发布AKS应用-HTTPS_Azure Kubernetes_04

创建好以后,使用kubectl get secret进行检查:

使用AGIC发布AKS应用-HTTPS_Azure Kubernetes_05

使用AGIC发布服务

准备好上述内容以后,我们就可以使用AGIC发布服务啦。

使用如下yaml文件发布服务,可以看到,我们是以tls的形式对外发布的服务并且指明了域名和证书相关信息。

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: nginx
annotations:
kubernetes.io/ingress.class: azure/application-gateway
spec:
tls:
- hosts:
- www.cloudmsp.club
secretName: www.cloudmsp.club
rules:
- host: www.cloudmsp.club
http:
paths:
- path: /
backend:
service:
name: nginx
port:
number: 80
pathType: Prefix

运行kubectl apply -f 部署Ingress:

使用AGIC发布AKS应用-HTTPS_HTTPS_06

部署完成以后,运行kubectl get ingress进行查看:

使用AGIC发布AKS应用-HTTPS_HTTPS_07

部署完以后,切换到Application Gateway,可以看到已经自动配置了相关的规则:

使用AGIC发布AKS应用-HTTPS_Application Gateway_08


测试访问

都配置好以后,我们可以通过浏览器访问网站进行测试,可以看到,现在已经是使用HTTPS协议访问我们的nginx服务:

使用AGIC发布AKS应用-HTTPS_Azure Kubernetes_09

ok,到这里我们就给大家介绍了如何使用AGIC发布AKS内的业务应用,感兴趣的同学可以自己测试下哈!

标签:kubectl,nginx,AGIC,AKS,部署,HTTPS
From: https://blog.51cto.com/wuyvzhang/6081005

相关文章

  • 为AKS群集配置网络策略
    网络策略是一种Kubernetes规范,其中针对Pod之间的通讯定义了访问策略。使用网络策略可以定义有关发送和接收流量的规则集,并将其应用到与一个或多个标签选择器相匹配的Pod集合......
  • vue发送的请求都是http请求,但是你可以修改使之变为https请求
    详细解析HTTP与HTTPS的区别https://juejin.cn/post/6844903471565504526Vue本地环境http改成https测试https://blog.csdn.net/weixin_53579656/article/details/1......
  • HttpServletRequest获取请求体数据,
    //java8可用Stringbody=request.getReader().lines().collect(Collectors.joining());request.getReader().lines()得到一个stream流.collect(Collectors.joining()......
  • 解析HTTPS如何让数据传输更安全
    鉴于HTTP的明文传输使得传输过程毫无安全性可言,且制约了网上购物、在线转账等一系列场景应用,于是引入加密方案。从HTTP协议栈层面来看,我们可以在TCP和HTTP之间插入......
  • https 自签名证书
    创建rootCA证书cd~&&mkdirmycertcdmycertopensslgenrsa-des3-outrootCA.key2048opensslreq-x509-new-nodes-keyrootCA.key-sha256-days1024-outr......
  • Charles的Https抓包配置
    一、现象与问题  通过使用Charles我们发现,对于https请求,其受到的报文数据是乱码的状态。二、解决方案1、安装SSL证书  在Charles工具中找到:  然后弹窗中依次......
  • ue5 - android 打包卡在下载gradle Downloading https://services.gradle.org/distri
    1.下载gradle国内镜像地址https://downloads.gradle-dn.com/distributions/gradle-6.1.1-all.zip下载后,将文件放入\.gradle\wrapper\dists\gradle-6.1.1-all\cfmwm15......
  • SpringBoot 配置 HTTPS 安全证书的两种方案
    使用JDK自带的工具生成证书使用FreeSSL提供的证  使用JDK自带的工具生成证书确保安装了JDK并正确配置了环境变量;进入你的JAVA_HOME目录中的bin目录;在这个目......
  • 为什么说HTTPS比HTTP安全? HTTPS是如何保证安全的?
    一、安全特性在上篇文章中,我们了解到HTTP在通信过程中,存在以下问题:通信使用明文(不加密),内容可能被窃听不验证通信方的身份,因此有可能遭遇伪装而HTTPS的出现正是解决这......
  • bugku_MagicImageViewer
    CTF安卓逆向MagicImageViewer——png结构+算法很少做安卓逆向的题目,在此记录一下先用模拟器看一下嗯,没啥提示。jeb打开关键部分if(s.length()==16)//输入的字......