/blog/可以转到Service A
Kubernetes的Ingress文档页面将其描述为:
“用于打点对集群中处事的外部访谒的API东西,凡是是HTTP。Ingress可以供给负载均衡、SSL终结和基于名称的虚拟主机。”
CNI不供给Ingress成果。这意味着Kubernetes集群打点者凡是要为其集群安置、打点和撑持单独的Ingress控制器解决方案。
对付没有内置Ingress撑持的本地和大众云中的Kubernetes部署,Tungsten Fabric绑缚了本身的Ingress控制器。它在后台使用HAProxy并实现了Kubernetes Ingress文档页面中所述的所有根基成果。
在AWS上运行时,可以将Kubernetes 配置为使用AWS的Application Load Balancer (ALB)为其Ingress处事。通过这种方法的设置,,沙箱中的Kubernetes可以最紧密地反应范例的现实部署场景。
下图概述了示例应用措施的最终部署架构:
Ingress控制器选项仅与使用HTTP或HTTPS的应用措施兼容。如果您的应用措施是这种情况,可能需要考虑使用Ingress来实现以下方针:
使用HTTPS掩护应用措施,然后通过配置Ingress进行SSL卸载来将措施果然在网络上;和/或
基于请求中的HTTP路径,将传入请求定向到差此外Kubernetes Services,例如,/blog/可以转到Service A,而/account/可以转到Service B,等等。和/或
通过基于名字的虚拟主机,应用措施处事于多个DNS域,例如Host:头设置为test.project.com的应用去Service C,而那些具有prod.project.com的去Service D。
通过Ingress果然示例应用在探讨上述三种情况之前,让我们部署一个简单的Ingress示例应用措施,类似于我们对 LoadBalancer的做法,然后在此根本长进行构建。
确保您位于沙箱控制节点上,以root用户身份登录,并且位于正确的目录中:
#确认您是root账户
whoami | grep root || sudo -s
#切换为清单目录
cd /home/centos/yelb/deployments/platformdeployment/Kubernetes/yaml
#部署具有Ingress的示例措施
kubectl create -f cnawebapp-ingress-alb.yaml
几分钟后,部署过程应该完成了,我们应该能够从Internet访谒示例应用措施。首先找到Ingress的DNS名称:
按照上面的输出,此刻可以从Internet上的上访谒我们的示例应用措施。
操作在环境中运行上述命令获得的DNS名称访谒Yelb,以确保其有效。
使用HTTPS掩护应用措施的安适对付此操练,我们需要生成自签名证书,并将其添加到AWS Certificate Manager。供给Ingress成果的AWS Application Load Balancer(ALB)需要使用此成果来执行加密。
注意:对支付产用途,可能需要通过AWS Certificate Manager的相应成果来获得完整注册域名的“适当”证书。由于我们只是在进行操练,因此将使用自签名的虚构域。
法式1:生成自签名证书,并将其添加到AWS Certificate Manager在安置了具有Access和Secret密钥的AWS CLI工具的主机上执行以下法式。这里的密钥允许您对Certificate Manager进行变动。
#为虚构的域名(yelb.mydomain.com)生成自签名证书:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout tls.key -out tls.crt -subj "/CN=yelb.mydomain.com"
#将新的证书插手到AWS Certificate Manager
#注意“--region” -这必需是同一个AWS区域
#在我们的例子中,运行Tungsten 沙箱时,它是“us-west-1”
aws acm import-certificate --certificate file://tls.crt --private-key file://tls.key --region us-west-1
如果一切顺利,最后一条命令将显示类似内容:
{
"CertificateArn": "arn:aws:acm:us-west-1:180612498884:certificate/e7341ff5-52ef-4a7b-94b5-05643ef6ab46"
}
我们将需要CertificateArn后面的值,以进行下一步。
法式2:成立Ingress界说确保您位于沙箱控制节点上,以root用户身份登录,并且位于正确的目录中:
#确定您是root身份
whoami | grep root || sudo -s
#切换为清单目录
cd /home/centos/yelb/deployments/platformdeployment/Kubernetes/yaml
此刻,让我们创建一个新的Ingress界说:
接下来,我们将CertificateArn放入。在运行该命令之前对其进行编纂,并用执行法式1时获得arn:aws:acm:us-west-1:180612498884:certificate/e7341ff5-52ef-4a7b-94b5-05643ef6ab46的值替换该命令CertificateArn。
sed-i"s#INSERT_CERT_ARN_HERE#arn:aws:acm:us-west-1:180612498884:certificate/e7341ff5-52ef-4a7b-94b5-05643ef6ab46#" ingress-https.yaml
如果命令告成运行,则ingress-https.yaml文件将具有自签名证书的ARN,而不是字符串INSERT_CERT_ARN_HERE。
法式3:成立HTTPS Ingress并进行测试#创建新的 Ingress
kubectl create -f ingress-https.yaml
运行上述命令后,请期待几分钟,以使新的ALB Ingress呈现。然后,让我们找到已为其分配的DNS名称,并测验考试连接到它:
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31609.html