入门

    Conduit有两个基础组件:数据平面由轻量级代理组成,这些代理部署为sidecar容器,与每个服务代码的实例在一起;控制平面 则用来对这些代理进行协调和管理。用户可以使用命令行界面(CLI)来和Service Mesh进行交互,另外还有Web应用用于控制集群。

    本文会谈到如何在Kubernetes集群中部署Conduit,并在其上运行一个gRPC示例应用。注意Conduit 0.1是一个Alpha版本。他Alpha到什么程度呢?目前仅提供了HTTP/2(包括gRPC),甚至HTTP/1.1也不被支持。如果你没有HTTP/2应用,也不用担心,我们已经提供示例应用给你尝试。

    需要运行Kubernetes 1.8版本的集群,还有在本机可正常工作的命令。可以用下面的命令来检查是否符合需要:

    应该会看到类似这样的内容:

    1. Server Version: v1.8.0

    请确认”Server Version”内容是1.8或以上。如果返回内容不是上面的情况,或者kubectl返回了错误信息,可能是集群不存在或者没有正确配置(如果想要快速简便的在本机运行Kubernetes,我们建议使用,需要注意的是,要求0.24.1或其后的版本。)

    安装CLI

    如果你是首次运行Conduit,需要下载命令行接口工具(CLI)到本机,然后使用CLI在Kubernetes集群上安装Conduit。

    运行下列命令,开始安装CLI:

    1. curl https://run.conduit.io/install | sh

    然后跟随指示即可。

    另外,还可以直接在Conduit发布页面下载CLI;或者可以从克隆源代码,根据README指导自行Build。

    应该会看到类似的内容:

    1. Client version: v0.1.0
    2. Server version: unavailable

    现在本机安装好了CLI了,是时候在Kubernetes集群上安装Conduit的控制平面了。不要担心目前集群上运行的其他应用——控制平面会安装在单独的conduit命名空间,所以要删除也是很容易的。

    运行下面的命令:

    1. conduit dashboard

    第一个命令生成Kubernetes配置,然后用管道输出给kubectl。Kubectl随后把配置应用到Kubernetes集群。(可以把这个命令拆成两个命令,来观察在应用之前发生了什么,例如conduit install > foo.yml; cat foo.yml)。

    第二个命令在浏览器窗口中加载仪表盘,如果你看到下图类似的内容,那么恭喜你,Conduit已经在你的集群上运行。

    当然,目前还没有任何服务运行在Service Mesh之中,所以仪表盘没有什么内容,只显示了Service Mesh自身的情况。

    安装演示应用

    终于,到了安装演示应用并添加到mesh的环节了。完成这所有只需要运行下面的一条命令:

    这个的命令下载示例gRPC应用的Kuberneetes配置,然后通过conduit inject运行配置。这将重写配置,在应用Pod中插入Conduit数据平面代理,作为sidecar容器。最后,kubectl应用这些配置到Kubernetes集群。

    至此,这个应用就在Kubernetes集群上运行了,并且(它还不知道!)也被加入到了Conduit的Service Mesh之中。

    浏览一下Conduit的仪表盘,则应该会看到演示应用的所有HTTP/2服务,这些服务在已添加到Conduit网格的部署列表中显示。

    我们可以用下面的URL查看应用:

    为了让仪表盘生动一些,我们可以编程生成一些流量。首先,我们需要IP地址:

    1. INGRESS=$(minikube -n emojivoto service web-svc --url | cut -f 3 -d / -) # on minikube
    2. INGRESS=$(kubectl get svc web-svc -n emojivoto -o jsonpath="{.status.loadBalancer.ingress[0].*}") # on GKE

    现在我们用一个简单的循环来生成流量:

    最后,我们再看仪表盘(如果尚未运行,运行conduit dashboard)。可以浏览所有的作为应用一部分的服务,并查看这些服务:

    • 成功率
    • 请求率
    • 延迟分布区间
    • 上下游依赖

    以及有关实况流量的其他各种信息。整洁,对不?

    使用CLI

    当然,仪表盘不是观测Conduit Service Mesh的唯一手段。CLI提供了很多有趣又强大的命令可以用来体验,包括:

    • conduit stat

    试试看运行conduit stat deployments和,看看会有什么发现。