二, 跨語言微服務框架 - Istio環境搭建 原 薦

當我們知道Istio是一個好東西,能夠幫助我們快速實現微服務化中的一些關鍵節點,那麼下一步就需要考慮怎麼使用Istio了,Istio現在版本是和Kubernetes強關聯在一起的,如果大家還不是太瞭解Kubernetes可以先從筆者的文章中瞭解,通過Kubernetes生態Istio可以非常方便的進行部署和使用。

附上:

喵了個咪的博客:w-blog.cn

Istio官方地址:https://preliminary.istio.io/zh

Istio中文文檔:https://preliminary.istio.io/zh/docs/

PS : 此處基於當前最新istio版本1.0.3版本進行搭建和演示

一. Kubernetes準備工作

搭建部署Istio時需要先準備好Kubernetes環境,筆者這邊使用的是Rancher進行環境的搭建,可以參考筆者的以下博文:

Docker應用容器引擎介紹與搭建 - 喵了個咪博客空間 - 開源中國

Kubernetes(二) - 使用Rancher部署K8S集羣(搭建Rancher) - 喵了個咪博客空間 - 開源中國

Kubernetes(三) - 使用Rancher部署K8S集羣(搭建Kubernetes) - 喵了個咪博客空間 - 開源中國

Docker應用容器引擎介紹與搭建 - 喵了個咪的博客 - CSDN博客

Kubernetes(二) - 使用Rancher部署K8S集羣(搭建Rancher) - 喵了個咪的博客 - CSDN博客

Kubernetes(三) - 使用Rancher部署K8S集羣(搭建Kubernetes) - 喵了個咪的博客 - CSDN博客

  1. 這裏需要着重提醒的是關於在部署的時候需要修改Kubernetes模板配置項,之後配置之後後面的Sidecar自動注入才能使用,否則只能手動入住Sidecar.

  1. 需要找到Kubernetes Admission controllers選項,如下
NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,ResourceQuota

在指定位置添加兩個選項

MutatingAdmissionWebhook,ValidatingAdmissionWebhook

如下

NamespaceLifecycle,LimitRanger,ServiceAccount,PersistentVolumeLabel,DefaultStorageClass,DefaultTolerationSeconds,MutatingAdmissionWebhook,ValidatingAdmissionWebhook,ResourceQuota

這樣才啓動了admissionregistration API

  1. 最後在創建集羣的時候選擇我們事先準備好的環境模板即可.

然後按照筆者之前的文章部署k8s即可:

PS : 這裏使用的K8S版本爲1.11,推薦使用1.10以上的版本

二. 部署Istio

PS : 1.0.3版本官方已經完全把docker倉庫使用了docker.io捨棄了grc.io就不需要我們去翻牆或者複製鏡像了(不在推薦使用1.0.3以前的版本)

首先去官方git下載對應的版本包(liunx 和 mac 要分開)

Releases · istio/istio · GitHub

> tar -zxvf istio-1.0.3-linux.tar.gz

2.1 安裝istioctl

如果手動注入sidecar的話需要使用這個命令,自動注入的話不裝這個也行:

> sudo cp istio-1.0.3/bin/istioctl /usr/local/bin/

2.2 安裝Istio核心組件

簡單的安裝只需要通過運行官方提前準備好的yaml即可,如果有定製需求(有些內部組件不需要可以使用helm進行yaml構建)

> kubectl apply -f istio-1.0.3/install/kubernetes/istio-demo.yaml

> kubectl get svc -n istio-system

> kubectl get pods -n istio-system 

PS : 這邊會有三個0/1的是正常的,主要是三個task只有到達指定時間纔會運行或一次性腳本

三. 結尾

此時istio就已經搭建完成,通過這種方式搭建的istio是一整套沒有刪減的容器組,包括grafaba + prometheus等(存在磁盤和處理資源的問題),如果有需求獨立在外層部署這些組件的需求就需要修安裝yaml進行了解學習修改,本套文章後續也會講解怎麼把一些非核心組件在外層部署(每個版本都會有一些區別需要小心)。

PS : 大家也許遇到了無法訪問外網的問題可以關注筆者後續的Egress流量控制或參考 Istio Prelim 1.1 / 控制 Egress 流量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章