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 中运行演示示例。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
13天前
|
Kubernetes 监控 Cloud Native
Kubernetes集群的高可用性与伸缩性实践
Kubernetes集群的高可用性与伸缩性实践
46 1
|
2月前
|
JSON Kubernetes 容灾
ACK One应用分发上线:高效管理多集群应用
ACK One应用分发上线,主要介绍了新能力的使用场景
|
2月前
|
Kubernetes 持续交付 开发工具
ACK One GitOps:ApplicationSet UI简化多集群GitOps应用管理
ACK One GitOps新发布了多集群应用控制台,支持管理Argo CD ApplicationSet,提升大规模应用和集群的多集群GitOps应用分发管理体验。
|
2月前
|
Kubernetes Ubuntu Linux
Centos7 搭建 kubernetes集群
本文介绍了如何搭建一个三节点的Kubernetes集群,包括一个主节点和两个工作节点。各节点运行CentOS 7系统,最低配置为2核CPU、2GB内存和15GB硬盘。详细步骤包括环境配置、安装Docker、关闭防火墙和SELinux、禁用交换分区、安装kubeadm、kubelet、kubectl,以及初始化Kubernetes集群和安装网络插件Calico或Flannel。
166 4
|
2月前
|
Kubernetes 应用服务中间件 nginx
搭建Kubernetes v1.31.1服务器集群,采用Calico网络技术
在阿里云服务器上部署k8s集群,一、3台k8s服务器,1个Master节点,2个工作节点,采用Calico网络技术。二、部署nginx服务到k8s集群,并验证nginx服务运行状态。
646 1
|
2月前
|
Kubernetes Cloud Native 云计算
云原生之旅:Kubernetes 集群的搭建与实践
【8月更文挑战第67天】在云原生技术日益成为IT行业焦点的今天,掌握Kubernetes已成为每个软件工程师必备的技能。本文将通过浅显易懂的语言和实际代码示例,引导你从零开始搭建一个Kubernetes集群,并探索其核心概念。无论你是初学者还是希望巩固知识的开发者,这篇文章都将为你打开一扇通往云原生世界的大门。
128 17
|
2月前
|
Kubernetes Cloud Native 流计算
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
77 3
|
2月前
|
Kubernetes Cloud Native 微服务
微服务实践之使用 kube-vip 搭建高可用 Kubernetes 集群
微服务实践之使用 kube-vip 搭建高可用 Kubernetes 集群
116 1
|
2月前
|
负载均衡 应用服务中间件 nginx
基于Ubuntu-22.04安装K8s-v1.28.2实验(二)使用kube-vip实现集群VIP访问
基于Ubuntu-22.04安装K8s-v1.28.2实验(二)使用kube-vip实现集群VIP访问
59 1
|
2月前
|
Kubernetes Cloud Native Ubuntu
云原生之旅:Kubernetes集群搭建与应用部署
【8月更文挑战第65天】本文将带你进入云原生的世界,通过一步步指导如何在本地环境中搭建Kubernetes集群,并部署一个简单的应用。我们将使用Minikube和Docker作为工具,探索云原生技术的魅力所在。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和实践技巧。