測試環境安裝Istio進行學習,參考文檔連接https://istio.io/zh/docs/setup/kubernetes/
測試環境:Openshift3.11+Centos7.5+Istio1.0.5
下載 Istio 發佈包
Istio 會被安裝到自己的 istio-system 命名空間,並且能夠對所有其他命名空間的服務進行管理。
下載和自動解壓縮
# curl -L https://git.io/getLatestIstio | sh -
# cd istio-1.0.5/
# ls
安裝目錄中包含:
- 在 install/ 目錄中包含了 Kubernetes 安裝所需的 .yaml 文件
- samples/ 目錄中是示例應用
- istioctl 客戶端文件保存在 bin/ 目錄之中。istioctl 的功能是手工進行 Envoy Sidecar 的注入,以及對路由規則、策略的管理
- istio.VERSION 配置文件
istioctl 客戶端加入 PATH 環境變量
# export PATH=$PWD/bin:$PATH
使用 Ansible 安裝
- 如果使用 OpenShift,必須滿足以下先決條件:
最低版本:3.9.0
oc 配置爲可以訪問集羣
用戶已登錄到集羣
用戶在 OpenShift 上具有 cluster-admin 角色
- 缺省情況下,OpenShift 不允許容器使用 User ID(UID) 0 來運行。 下面的命令讓 Istio 的 Service account 可以使用 UID 0 來運行容器:
$ oc adm policy add-scc-to-user anyuid -z istio-ingress-service-account -n istio-system
$ oc adm policy add-scc-to-user anyuid -z default -n istio-system
$ oc adm policy add-scc-to-user anyuid -z prometheus -n istio-system
$ oc adm policy add-scc-to-user anyuid -z istio-egressgateway-service-account -n istio-system
$ oc adm policy add-scc-to-user anyuid -z istio-citadel-service-account -n istio-system
$ oc adm policy add-scc-to-user anyuid -z istio-ingressgateway-service-account -n istio-system
$ oc adm policy add-scc-to-user anyuid -z istio-cleanup-old-ca-service-account -n istio-system
$ oc adm policy add-scc-to-user anyuid -z istio-mixer-post-install-account -n istio-system
$ oc adm policy add-scc-to-user anyuid -z istio-mixer-service-account -n istio-system
$ oc adm policy add-scc-to-user anyuid -z istio-pilot-service-account -n istio-system
$ oc adm policy add-scc-to-user anyuid -z istio-sidecar-injector-service-account -n istio-system
$ oc adm policy add-scc-to-user anyuid -z istio-galley-service-account -n istio-system
- Ansible playbook 的所有執行都必須在 Istio 的 install/kubernetes/ansible 路徑中進行。
此 playbook 將在您的機器上下載並本地安裝 Istio。
自定義安裝可參考 https://istio.io/zh/docs/setup/kubernetes/ansible-install/
目前公開的選項有:
在 OpenShift 上部署默認配置的 Istio:
# ansible-playbook main.yml
確認安裝
確保所有相應的pod都已被部署且所有的容器都已啓動並正在運行: