# HTTP/2漏洞升级说明

## Go语言HTTP/2漏洞

- 发布时间：2019年8月13日
- 更新时间：2019年8月26日
- 漏洞等级：Important
- CVE编号：CVE-2019-9512 CVE-2019-9514

## 漏洞详情

Netflix、Google及CERT/CC
近日揭露了有关HTTP/2的8个安全漏洞，其中Go语言的net/http库存在着CVE-2019-9512与CVE-2019-9514两个安全漏洞，造成任何基于HTTP或HTTPS接听器的程序发生服务中断，而且波及K8s的所有版本及组件。

Go语言已经发布Go1.12.9与Go1.11.13来修补这两个漏洞，而K8s则是基于Go的修补发布K8s v1.15.3、K8s v1.14.6与K8s
v1.13.10，建议K8s用户应尽快升级到最新版本。

[官方参考文档](https://groups.google.com/forum/#!topic/kubernetes-security-announce/wlhlhit1bqa)

## 影响范围

2019年8月28日18:00之前创建的集群

此批集群的K8S版本低于官方给出的修复完成版本的编号。

2019年8月28日18:00之后创建的集群已修复该漏洞，并已通测试。

## 修复方案

UK8S根据官方提供的修补发布版本制作了k8s v1.13.10和v1.14.6升级安装包。

v1.13.10下载地址：http://uk8s.cn-bj.ufileos.com/1.13.10/k8s.tgz

v1.14.6下载地址：http://uk8s.cn-bj.ufileos.com/1.14.6/k8s.tgz

1. 下载安装包文件到服务器上，可使用命令

```
wget http://uk8s.cn-bj.ufileos.com/1.13.10/k8s.tgz
```

如您开通的是1.14.5请将wget的下载地址替换为1.14.6的下载地址

2. 解压下载完成的安装包

```
tar zxvf k8s.tgz
```

3. 执行更新脚本

master节点执行

```
chmod +x 1.13.10/uk8supgrade.sh
sh 1.13.10/uk8supgrade.sh master
```

node节点执行

```
chmod +x 1.13.10/uk8supgrade.sh
sh 1.13.10/uk8supgrade.sh node
```

如您开通的是1.14.5请将sh的执行路径更改为1.14.6的解压路径

## 注意事项

1. 升级操作需要对集群内所有master和node节点进行执行，master节点需要一个节点执行成功后再执行第二个节点的升级操作，可以通过**kubectl get
   cs**查看系统服务是否变为Healthy，变为Healthy后再切换到第二台执行。

2. 如果集群为内网使用或者没有设置外网网关，可以在集群内部开通一台带有外网IP的虚拟机，通过scp的方式复制到每一个节点，然后切换节点执行更新操作。

3. 更新1个节点大约2分钟左右，请您耐心等待。

4. 如升级过程中，升级脚本执行报错，请立即与我们联系，我们将协助您完成升级操作。

## 批量安装方法

> 批量操作方法需要节点使用密码相同，如密码不同建议使用手动部署。

> master节点需要一台健康后更新第二台，故不能使用此批量更新文档。

1. 安装pssh工具

```
yum install pssh -y
```

2. 创建node节点列表文件

```
vim hosts.txt
```

格式为user@ip,例如：

```
root@10.10.10.10
root@10.10.10.11
root@10.10.10.12
root@10.10.10.13
```

3. 执行

```
pscp.pssh -Ah hosts.txt k8s.tgz /root/
pssh -Ah hosts.txt -x '-o StrictHostKeyChecking=no' -i 'sudo tar zxvf k8s.tgz'
pssh -Ah hosts.txt -x '-o StrictHostKeyChecking=no' -i 'sudo chmod +x 1.13.10/uk8supgrade.sh'
pssh -Ah hosts.txt -t 0 -x '-o StrictHostKeyChecking=no' -i 'sudo sh 1.13.10/uk8supgrade.sh node'
```

如您开通的是1.14.5请将相关的路径更改为1.14.6的路径。
