hello云胜

技术与生活

0%

Istio安装

环境准备

Istio安装的前提是需要准备一个kubernetes环境。

这对我们学习比较麻烦,因为安装一套k8s比较麻烦,而且对服务器资源的要求比较高。

学习istio阶段可以使用一些免费资源。比如katacoda。

Katacoda 可以快速的提供一套完整的临时环境,在浏览器中使用该环境来学习和测试新技术。

最重要的是,它是免费的!

打开这个网址

Kubernetes Playground | Katacoda

直接一个临时的k8s环境就可以用了。

image-20210922102000271

下载安装包

1
curl -L https://istio.io/downloadIstio | sh -

image-20210922102806897

下载完成,按照提示讲istio添加到环境变量里

1
export PATH="$PATH:/root/istio-1.11.2/bin"

image-20210922102933114

使用istioctl version看一下版本。

因为我们还没有安装istio本身,所以显示没有pod在运行

安装

istio提供了几个profile配置文档,供不同的环境安装使用

todo图

生产环境下使用

1
istioctl manifest apply 

安装default这个版本

学习阶段我们安装demo

1
istioctl manifest apply --set profile=demo

等待安装完成

image-20210922103315846

1
2
3
4
5
6
7
controlplane $ kubectl get ns
NAME STATUS AGE
default Active 7m46s
istio-system Active 100s
kube-node-lease Active 7m48s
kube-public Active 7m48s
kube-system Active 7m48s

看到新创建了一个istio-system的namespace

image-20210922103746671

验证安装

命令行验证

1
2
istioctl manifest generate > $HOME/generated-manifest.yaml
istioctl verify-install -f $HOME/generated-manifest.yaml

可视化验证

dashboard

1
istioctl dashboard kiali

部署一个应用

istio提供了一个图书管理的微服务系统。是一个多语言的异构的微服务系统。

todo图

1
kubectl label namespace default istio-injection-enabled --overwrite=true namespace/default labeled

给default namespace加一个label,自动注入

在以后部署应用的时候,自动改写清单,把siadecar的相关配置自动注入进去。

1
kubectl apply -f samples/bookinfo/platform/kube/bookinfo.yaml

再部署一个gateway,供外界访问

1
kubectl apply -f samples/bookinfo/networking/bookinfo-gateway.yaml