Kubernetes 实战教学,手把手教您在 K8s 集群上部署 Istio Mesh(一)

简介: Istio 是一个完全的开源服务网格,它可以对现有的分布式应用程序进行清晰的分层处理。近期,Istio v1.0版本已经正式上线。Istio 完全由 Go 语言编写,它是一个相当成熟的平台......

screenshot

出品丨Docker公司(ID:docker-cn)
编译丨小东
每周一、三、五,与您不见不散!


在之前的两篇 Kubernetes 实战教学文章《Kubernetes 实战教学,手把手教您设置拥有5个节点的 K8S 群集》、《Kubernetes 实战教学,手把手教您运行第一个 Nginx 集群》中,我展示了如何构建5个节点的 Kubernetes 集群以及如何在这个集群环境中构建第一个 Nginx 应用程序。在本文中,我将展示如何在 Play with Kubernetes 平台上构建 Istio 应用程序。


Istio 是一个完全的开源服务网格,它可以对现有的分布式应用程序进行清晰的分层处理。近期,Istio v1.0版本已经正式上线。Istio 完全由 Go 语言编写,它是一个相当成熟的平台,可以提供 API 将其集成到任何日志记录平台策略系统中。这个项目对系统的开销非常小。您可以浏览 https://github.com/istio/ 从 GitHub 处获取 Istio。Istio的多样化功能集使您能够成功、高效地运行分布式微服务架构,并提供一种统一的方式来保护、连接和监视微服务。

Istio 由以下几个部分组成:

  • Envoy —— 即每个微服务的Sidecar代理,用于处理集群中服务之间以及从一个服务到外部服务之间的入口、出口流量。这个代理形成了一个安全的微服务网格,可以提供丰富的功能,如发现、第7层路由、断路器、策略实施和遥测记录/报告功能。(注意:服务网格不是覆盖网络。它简化并增强了应用程序中的微服务,通过底层平台提供的网络相互通信。)
  • Mixer —— 代理和微服务利用的中央组件,用于实施授权、速率限制、配额、身份验证、请求跟踪和遥测收集等策略。
  • Pilot —— 负责在运行时配置代理的组件。
  • Citadel —— 负责证书颁发和轮换的集中组件。
  • Node Agent —— 负责证书颁发和轮换的每个节点组件。
  • Galley —— 用于在 Istio 中验证、摄取、聚合、转换和分发配置的中心组件。

Istio 带来了哪些好处?

screenshot

screenshot


图示:Sidecar 接收了所有网络流量

  • Istio 可以让您连接、保护、控制和观察服务;
  • 它有助于降低服务部署的复杂性,并减轻开发团队的压力;
  • 它为开发人员和 DevOps 提供了细粒度的可见性和对流量的控制,并且无需对应用程序代码进行任何更改;
  • 它为 CIO 提供了所需的必要工具,来帮助整个企业实现安全性和合规性要求;
  • 它提供了对整个服务网格的行为洞察和操作控制;
  • 通过HTTP、gRPC、Web Socket 和 TCP 流量的自动负载均衡,Istio 可以轻松创建已部署服务的网络;
  • 它提供了对流量行为的细粒度控制,具有丰富的路由规则、重试、故障转移和故障注入;
  • 它支持可插入的策略层和配置 API、支持访问控制、速率限制和配额;
  • Istio 为群集中的所有流量提供自动度量标准、日志和跟踪,包括群集的入口和出口;
  • 它通过强大的基于身份的身份验证和授权在群集中提供安全的服务到服务的通信;

Istio 目前支持 Kubernetes。在这篇文章中,我将展示如何在Play with Kubernetes 平台使用Istio。

首先,打开 https://labs.play-with-k8s.com/ 访问 Kubernetes Playground。

screenshot

单击“Login”后选择使用 Docker Hub 或 GitHub ID 进行身份验证。

screenshot

一旦开始会话,您将拥有一个自己的实验室环境。


添加第一个 Kubernetes 节点

screenshot

单击左侧的“Add New Instance” 来建您的第一个 Kubernetes 集群节点。它会自动将其命名为“node1”。每个实例都预装了Docker Community Edition(CE)和Kubeadm。该节点将被视为我们群集的主节点。


引导主节点

您可以通过使用以下脚本初始化主节点(node1)来引导 Kubernetes 集群。将此脚本内容复制到 bootstrap.sh 文件中,并使用“chmod + x bootstrap.sh”命令使其可执行。

当您执行此脚本时,作为初始化的一部分,kubeadm 将会编写所需的几个配置文件,设置 RBAC 并部署Kubernetes控制平面组件(如 kube-apiserver、kube-dns、kube-proxy 和 etcd等等)。控制平面组件以 Docker 容器的形式进行部署。

screenshot

复制上面的 kubeadm 连接令牌命令,并将其保存以供下一步使用。此命令将用于将其他节点连接到集群。


添加工作节点

screenshot

点击“Add New Node”来添加一个新的工作节点。


检查集群状态

screenshot


验证正在运行的 Pod

screenshot


我们已经完成了安装 Istio 1.0.0 版本的所有准备,在下一篇文章中,我将为大家带来 Istio 1.0.0 版本完整的安装过程,并在 Istio 1.0.0 中运行演示示例。

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
5月前
|
人工智能 算法 调度
阿里云ACK托管集群Pro版共享GPU调度操作指南
本文介绍在阿里云ACK托管集群Pro版中,如何通过共享GPU调度实现显存与算力的精细化分配,涵盖前提条件、使用限制、节点池配置及任务部署全流程,提升GPU资源利用率,适用于AI训练与推理场景。
530 1
|
5月前
|
弹性计算 监控 调度
ACK One 注册集群云端节点池升级:IDC 集群一键接入云端 GPU 算力,接入效率提升 80%
ACK One注册集群节点池实现“一键接入”,免去手动编写脚本与GPU驱动安装,支持自动扩缩容与多场景调度,大幅提升K8s集群管理效率。
358 89
Kubernetes 安全 容器
299 0
|
10月前
|
资源调度 Kubernetes 调度
从单集群到多集群的快速无损转型:ACK One 多集群应用分发
本文介绍如何利用阿里云的分布式云容器平台ACK One的多集群应用分发功能,结合云效CD能力,快速将单集群CD系统升级为多集群CD系统。通过增加分发策略(PropagationPolicy)和差异化策略(OverridePolicy),并修改单集群kubeconfig为舰队kubeconfig,可实现无损改造。该方案具备多地域多集群智能资源调度、重调度及故障迁移等能力,帮助用户提升业务效率与可靠性。
|
10月前
|
资源调度 Kubernetes 调度
从单集群到多集群的快速无损转型:ACK One 多集群应用分发
ACK One 的多集群应用分发,可以最小成本地结合您已有的单集群 CD 系统,无需对原先应用资源 YAML 进行修改,即可快速构建成多集群的 CD 系统,并同时获得强大的多集群资源调度和分发的能力。
689 9
|
12月前
|
存储 Kubernetes 监控
K8s集群实战:使用kubeadm和kuboard部署Kubernetes集群
总之,使用kubeadm和kuboard部署K8s集群就像回归童年一样,简单又有趣。不要忘记,技术是为人服务的,用K8s集群操控云端资源,我们不过是想在复杂的世界找寻简单。尽管部署过程可能遇到困难,但朝着简化复杂的目标,我们就能找到意义和乐趣。希望你也能利用这些工具,找到你的乐趣,满足你的需求。
1081 33
|
12月前
|
Kubernetes 开发者 Docker
集群部署:使用Rancher部署Kubernetes集群。
以上就是使用 Rancher 部署 Kubernetes 集群的流程。使用 Rancher 和 Kubernetes,开发者可以受益于灵活性和可扩展性,允许他们在多种环境中运行多种应用,同时利用自动化工具使工作负载更加高效。
672 19
|
人工智能 分布式计算 调度
打破资源边界、告别资源浪费:ACK One 多集群Spark和AI作业调度
ACK One多集群Spark作业调度,可以帮助您在不影响集群中正在运行的在线业务的前提下,打破资源边界,根据各集群实际剩余资源来进行调度,最大化您多集群中闲置资源的利用率。
|
Prometheus Kubernetes 监控
OpenAI故障复盘丨如何保障大规模K8s集群稳定性
OpenAI故障复盘丨如何保障大规模K8s集群稳定性
496 0
OpenAI故障复盘丨如何保障大规模K8s集群稳定性
|
监控 安全 Cloud Native
云原生安全:Istio在微服务架构中的安全策略与实践
【10月更文挑战第26天】随着云计算的发展,云原生架构成为企业数字化转型的关键。微服务作为其核心组件,虽具备灵活性和可扩展性,但也带来安全挑战。Istio作为开源服务网格,通过双向TLS加密、细粒度访问控制和强大的审计监控功能,有效保障微服务间的通信安全,成为云原生安全的重要工具。
304 2

推荐镜像

更多