探讨基于阿里云容器技术架构(二)

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 本篇我们根据上篇架构图,尝试实战部署之旅,并且探讨可能遇到的坑 。

阅读本篇需要具备 Kubernetes 知识和 kubectl 工具基本使用。

上一篇介绍了整体架构图,接下来的文章我们围绕架构图部署应用,本篇我们主要介绍网关的部署方式以、所需要的资源介绍以及可能会遇到的坑,不会对细节进行过多的描述,比如如何打包 docker 镜像等,因为我们不打算写一个从零开始的长而冗余的教程,浪费各位宝贵的阅读时间。部署中遇到问题直接在文章中评论,我会回复。

网关

代码简单主要起到说明作用,所以不做代码讲解了。源码托管在GitHub:https://github.com/Tony-Hangzhou/mvp-samples

网关职责是封装内部服务,对外提供统一API访问,当然也可以加入鉴权和授权的职责。所以网关的网络通讯要求是既要提供给Kubernetes外部访问的入口,又要把请求路由到内部服务(相当于反向代理)。

ZuulApplication.java

@EnableZuulProxy
@SpringBootApplication
public class ZuulApplication {

 
 public static void main(String[] args) {    
     SpringApplication.run(ZuulApplication.class, args);    
 }    
 

}

application.yml

spring:
application:

 name: api-gateway    
 

zuul:
routes:

 user-service:    
   path: /users/**    
   url: http://localhost:8081    
   strip-prefix: false    
 
 order-service:    
   path: /orders/**    
   url: http://localhost:8082    
   strip-prefix: false    
 

management:
endpoints:

 web:    
   exposure:    
     include: routes  

部署拓扑图

根据前篇介绍的架构图,我们的应用部署图如下,应用部分由网关(Zuul)、Foo、Bar组成。部署所需要的资源阿里云Kubernetes集群、阿里云SLB以及阿里云镜像托管Docker镜像。

image.png

资源准备

阿里云 Kubernetes

申请一个阿里云 Kubernetes 集群,Master 节点默认3个,Node 节点至少一个。

SLB

Kubernetes 暴露 Service 给外部访问有多种方式,我们这里选择 LoadBalancer 方式。阿里云 Kubernetes 支持阿里云 SLB 作为 LoadBalancer,而且支持阿里云内网和外网 SLB 。

  • 外网

service.beta.kubernetes.io/alicloud-loadbalancer-address-type: internet

service.beta.kubernetes.io/alicloud-loadbalancer-id: ***  
  • 内网

service.beta.kubernetes.io/alicloud-loadbalancer-address-type: intranet

service.beta.kubernetes.io/alicloud-loadbalancer-id: ***

阿里云镜像

阿里云镜像为 Docker 镜像提供了托管服务,省掉自己搭建镜像服务器和维护的成本。

避坑指南

  • Pod IP
    原生 Kubernetes Pod IP 是内部IP,外部是无法访问的。阿里云 Kubernetes 通过 CNI 接口,自定义了网络部分的实现,他的 Pod IP 实际上是阿里云内网IP,Kubernetes 外部是可以访问的,但是熟悉 Kubernetes 同学知道这个 IP 随着Pod 被调度是回变化的,所以一定不要使用 Pod IP 直接访问,而是通过 Service 访问。
  • SLB
    Kubernetes 基于申明的方式部署服务,所以我们有一个 gateway-deploy.yaml,然后通过 kubectl 客户端做部署操作。尽可能使用命令 kubectl apply -f gateway-depoy.yaml 操作。避免使用 kubectl delete 和 kubectl create 组合操作,阿里云 SLB 会出现无法绑定到 NodePort 情况,从而造成通过 SLB 无法访问服务。
  • namespace
    避免 namespace 使用中短横线如:service-core。Kubernetes 内部服务使用 DNS 域名访问,如:foo.service-core,会出现通过该域名无法访问情况。去掉短横线或者通过 Service ClusterIP 即可访问,还有一种办法使用 foo.service-core.svc 或者全域名 foo.service-core.svc.cluster.local 也可访问。问题可能是 Kubernetes 短域名解析Bug,具体原因不明,请路过的高手指点一二。

主要操作

1、编写部署文件 gateway-deploy.yaml ,源代码见GitHub:https://github.com/Tony-Hangzhou/mvp-samples
2、打包 Docker 镜像
3、上传镜像到阿里云镜像服务器
4、使用 kubectl apply 命令部署服务

总结

本篇介绍了网关部署以及可能遇到的坑。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
相关文章
|
1月前
|
供应链 安全 Cloud Native
阿里云飞天企业版获【可信云·容器平台安全能力】先进级认证
阿里云飞天企业版容器系列产品获中国信息通信研究院【可信云·容器平台安全能力】先进级认证,这是飞天企业版容器产品获得《等保四级PaaS平台》和《 云原生安全配置基线规范V2.0》之后,本年度再一次获得行业权威认可,证明飞天企业版的容器解决方案具备符合行业标准的最高等级容器安全能力。
101 8
阿里云飞天企业版获【可信云·容器平台安全能力】先进级认证
|
1月前
|
Java Linux C语言
《docker基础篇:2.Docker安装》包括前提说明、Docker的基本组成、Docker平台架构图解(架构版)、安装步骤、阿里云镜像加速、永远的HelloWorld、底层原理
《docker基础篇:2.Docker安装》包括前提说明、Docker的基本组成、Docker平台架构图解(架构版)、安装步骤、阿里云镜像加速、永远的HelloWorld、底层原理
398 90
|
2月前
|
弹性计算 运维 监控
阿里云云服务诊断工具:合作伙伴架构师的深度洞察与优化建议
作为阿里云的合作伙伴架构师,我深入体验了其云服务诊断工具,该工具通过实时监控与历史趋势分析,自动化检查并提供详细的诊断报告,极大提升了运维效率和系统稳定性,特别在处理ECS实例资源不可用等问题时表现突出。此外,它支持预防性维护,帮助识别潜在问题,减少业务中断。尽管如此,仍建议增强诊断效能、扩大云产品覆盖范围、提供自定义诊断选项、加强教育与培训资源、集成第三方工具,以进一步提升用户体验。
753 243
|
4天前
|
弹性计算 人工智能 资源调度
DeepSeek大解读系列公开课上新!阿里云专家主讲云上智能算力、Kubernetes容器服务、DeepSeek私有化部署
智猩猩「DeepSeek大解读」系列公开课第三期即将开讲,聚焦阿里云弹性计算助力大模型训练与部署。三位专家将分别讲解智能算力支撑、Kubernetes容器服务在AI场景的应用实践、以及DeepSeek一键部署和多渠道应用集成,分享云计算如何赋能大模型发展。欲观看直播,可关注【智猩猩GenAI视频号】预约。 (239字符)
|
14天前
|
存储 人工智能 并行计算
2025年阿里云弹性裸金属服务器架构解析与资源配置方案
🚀 核心特性与技术创新:提供100%物理机性能输出,支持NVIDIA A100/V100 GPU直通,无虚拟化层损耗。网络与存储优化,400万PPS吞吐量,ESSD云盘IOPS达100万,RDMA延迟<5μs。全球部署覆盖华北、华东、华南及海外节点,支持跨地域负载均衡。典型应用场景包括AI训练、科学计算等,支持分布式训练和并行计算框架。弹性裸金属服务器+OSS存储+高速网络综合部署,满足高性能计算需求。
|
2月前
|
人工智能 运维 Kubernetes
阿里云容器服务AI助手2.0 - 新一代容器智能运维能力
2024年11月,阿里云容器服务团队进一步深度融合现有运维可观测体系,在场景上覆盖了K8s用户的全生命周期,正式推出升级版AI助手2.0,旨在更好地为用户使用和运维K8S保驾护航。
|
2月前
|
人工智能 运维 监控
阿里云ACK容器服务生产级可观测体系建设实践
本文整理自2024云栖大会冯诗淳(花名:行疾)的演讲,介绍了阿里云容器服务团队在生产级可观测体系建设方面的实践。冯诗淳详细阐述了容器化架构带来的挑战及解决方案,强调了可观测性对于构建稳健运维体系的重要性。文中提到,阿里云作为亚洲唯一蝉联全球领导者的容器管理平台,其可观测能力在多项关键评测中表现优异,支持AI、容器网络、存储等多个场景的高级容器可观测能力。此外,还介绍了阿里云容器服务在多云管理、成本优化等方面的最新进展,以及即将推出的ACK AI助手2.0,旨在通过智能引擎和专家诊断经验,简化异常数据查找,缩短故障响应时间。
阿里云ACK容器服务生产级可观测体系建设实践
|
2月前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
1月前
|
监控 安全 Cloud Native
阿里云容器服务&云安全中心团队荣获信通院“云原生安全标杆案例”奖
2024年12月24日,阿里云容器服务团队与云安全中心团队获得中国信息通信研究院「云原生安全标杆案例」奖。
|
2月前
|
Kubernetes 安全 数据安全/隐私保护
云卓越架构:容器安全最佳实践
本次分享由阿里云智能集团解决方案架构师张玉峰主讲,主题为“云卓越架构:容器安全最佳实践”。内容涵盖容器安全的挑战、云原生容器安全架构及典型场景。首先分析了容器安全面临的问题,如镜像漏洞和权限管理。接着介绍了容器安全架构的五个维度:身份权限管理、配置安全检查、运行时防护、镜像安全检测及发布的安全管控。最后通过具体场景展示了容器身份与权限管理、密钥管理、运行时防入侵等最佳实践,强调了安全左移的重要性,确保从开发到运行的全生命周期安全覆盖。

热门文章

最新文章