七月 2017

istio 三日谈之二 路由规则

路由控制是 istio 的最常用功能了,经过前面的准备,我们已经基本可以进行这些内容的尝试了。

注意下面的路由规则都忽略了对来源的过滤,会显得比较呆板或者说没用,但是在加入过滤条件之后,就完全不可同日而语了。具体的过滤规则的写法可以参考官方文档或者 istio 中的 bookinfo 实例。

创建 frontend-v2

为了展示路由分配的能力,我们首先创建一个名为frontend-v2Deployment,这个deploy跟之前的 v1 共享同一个 PVC,也就是共享同一套页面。利用环境变量来控制输出。

istio 三日谈之一,环境准备

笔者尝试在一个准生产环境下,利用 istio 来对运行在 Kubernetes 上的微服务进行管理。

这一篇是第一篇,将一些主要的坑和环境准备工作。

内容较多,因此无法写成手把手教程,希望读者有一定 Kubernetes 的操作基础。

准备镜像

初始运行需要的镜像包括以下几个:

  • istio/mixer:0.1.6
  • pilot:0.1.6
  • proxy_debug:0.1.6
  • istio-ca:0.1.6

首先要解决的自然还是镜像的存放问题,官方在源码中提供了很方便的工具,用来根据模板生成在 Kubernetes 中运行 istio 的 YAML 文件:

Istio,Kubernetes 的微服务支持

参考资料: https://developer.ibm.com/dwblog/2017/istio/ http://blog.kubernetes.io/2017/05/managing-microservices-with-istio-service-mesh.html https://istio.io/docs/

简介

Istio 是一个由 IBM、Google 以及 Lyft 联合推出的开源软件,以无痛方式为运行在 Kubernetes 上的微服务提供流量管理,访问策略管理以及监控等功能。这一软件目前仅在 Kubernetes 上运行,今后可能会扩展到其他平台。本文会结合官方例子,完成安装和基础的监控内容。

架构和组件

总体架构如图所示。

arch

Kubeadm offline installer 升级到 1.7.0 版本

仓库地址

本来做这玩意的初衷就是,Kubeadm 和 Kubernetes 是一家人,升级比较方便跟得住。未曾想第一次大版本升级,就遇到了个不大不小的坑,导致安装无法完成。这个 Issue 会在 1.7.1 修补,下面介绍一下曲线救国的安装方式。

这一问题的似乎是 kubeadm 的更新破坏了 TLS 自动授权过程造成的,具体症状是:主节点的kubeadm init完成之后,在其他节点上使用kubeadm join --token=xxxx host_ip:host_port命令加入集群时,集群会反复输出错误信息,大意是kube-public命名空间中名为cluster-info的 ConfigMap 中没有对应 token 的签署记录。

使用 kubectl 查看该 ConfigMap,和 1.6.6 的集群作对照(是的,安装的够快,想要什么版本都容易),发现 1.7.0 里面这个 ConfigMap 的元素列表确缺少这一块内容。