Istio 4 AutoInjection

Submitted by Lizhe on Sun, 06/21/2020 - 01:01

这里我要偷个懒,直接使用 rancher 来配置自动注入

目前rancher仅支持到 1.4.7 ,跟之前用的 1.6 安装上差别还是挺大的,不过并不影响我们尝试自动注入

20200621090439

 

创建一个新的 namespace 然后指定 autoinjection

 

Istio 3 helloworld

Submitted by Lizhe on Fri, 06/19/2020 - 10:33

下面这个helloworld 参考 《深入浅出istio》

但是书中的 yaml 格式已经过时了,新版本的 kubernetes 已经没法兼容,所以做了一些对应的修改

apiVersion: v1

kind: Service

metadata:

  name: flaskapp-service

  labels: 

    app: flaskapp-service-label

spec: 

  selector: 

    app: flaskapp-app

  ports: 

    - name: http

      port: 80

 

---

 

apiVersion: apps/v1

Istio 2 install

Submitted by Lizhe on Fri, 06/19/2020 - 08:42

 

先 clone

git clone https://github.com/istio/istio.git

然后你可以在 release 文件夹下边找到这么个玩意

downloadIstioCtl.sh

20200619052257

 

istioctl install

 

 

Istio 1

Submitted by Lizhe on Fri, 06/19/2020 - 08:06

Istio 分为 控制面 和 数据面

1. 数据面 为 Sidecar

2. 控制面 管理所有Istio功能

 

1. Pilot

Pilot 是主要控制节点, 流量控制就是由 Pilot 负责的,但是具体执行是 Sidecar

Pilot 的配置内容会发送给Sidecar,Sidecar根据指令,负责本地控制

 

2. Mixer

Mixer 负责 检测 和 汇报

3. Citadel

用于管理证书

4. Sidecar ( Envoy )

实际执行网格控制

 

Istio 在安装过程中会初始化 CRD,在kubernetes中注册。

Istio 中的资源分为三种

networking.istio.io

config.istio.io

authentication.istion.io

 

在1.6版本之前,如果你安装了 istio ,会看到下面这些组件

Kubernetes HPA and Rollingupdate

Submitted by Lizhe on Wed, 06/10/2020 - 06:20

补全一点 HPA 的内容

 

原理实在是没什么好说的,根据当前请求自动伸缩

 

下面以cpu使用率指标来说明hpa是如何来根据指标使用伸缩的:

CPUUtilizationPercentage即cpu使用率的百分比。hpa判断的标准是目标Pod所有副本自身的CPU利用率的平均值。一个Pod自身的CPU利用率是该Pod当前的CPU的使用量除以它的CPU Request的值。

比如定义一个Pod的CPU Request为0.4,而当前的Pod的CPU使用量为0.2,则它的CPU使用率为 50%,这样计算一个Deployment的所有Pod的cpu使用率的平均值。如果某一刻该值超过80%,则意味着当前的Pod 副本数很可能不足以支撑接来下更多的请求,需要进行动态扩容,而当前请求高峰时段过去后,Pod的 CPU 利用率又会降下来,此时对应的Pod副本数应该自动减少到一个合理的水平。

CPUUtilizationPercentage计算过程中使用到的Pod的CPU使用量通常是1min内的平均值。

 

ubuntu18 nvidia cuda tensorflow2.1 driver install

Submitted by Lizhe on Fri, 06/05/2020 - 10:16

conda

wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-4.7.10-Linux-x86_64.sh

chmod 777 Miniconda3-4.7.10-Linux-x86_64.sh 

./Miniconda3-4.7.10-Linux-x86_64.sh 

conda create -n tf21 python=3.7

 

driver

sudo ubuntu-drivers devices

sudo apt install nvidia-driver-430

 

conda activate tf21

conda install cudatoolkit=10.1

conda install cudnn=7.6

Install rancher HA on EKS

Submitted by Lizhe on Thu, 06/04/2020 - 08:38

以下命令适用于 需要在 AWS EKS 上直接安装 rancher HA 的情况

首先你启动一个 EKS 组然后用 helm 在上面安装rancher,这时候你会发现 rancher admin 的 ingress 一直无法正确初始化

root cause 是这样的 在 rancher HA 的官方文档里 第一步是使用 RKE,RKE 在安装过程中默认会安装 nginx 的ingress,

所以在执行 helm 命令之前,ingress就已经被安装了,这里由于没有 RKE 介入,所以你需要先安装 ingress

( 当然 kong 和 traefic 也可以不一定非要nginx )

helm install stable/nginx-ingress --name rancher-nginx --set rbac.create=true

 

然后安装rancher,但是注意要指定 annotation,没有最后一行是不能正常工作的