更新k8s1.9.1

pull/74/head
jmgao 2018-01-07 22:32:14 +08:00
parent 798191f4f6
commit f328a21d39
6 changed files with 39 additions and 23 deletions

View File

@ -2,25 +2,23 @@
![docker](./pics/docker.jpg) ![kube](./pics/kube.jpg) ![ansible](./pics/ansible.jpg) ![docker](./pics/docker.jpg) ![kube](./pics/kube.jpg) ![ansible](./pics/ansible.jpg)
本系列文档致力于提供快速部署高可用`k8s`集群的工具,并且也努力成为`k8s`实践、使用的参考书;基于二进制方式部署和利用`ansible-playbook`实现自动化:既提供一键安装脚本,也可以分步执行安装各个组件,同时讲解每一步主要参数配置和注意事项。 本系列文档致力于提供快速部署高可用`k8s`集群的工具,并且也努力成为`k8s`实践、使用的参考书;基于二进制方式部署和利用`ansible-playbook`实现自动化:既提供一键安装脚本,也可以分步执行安装各个组件,同时讲解每一步主要参数配置和注意事项;二进制方式部署有助于理解系统各组件的交互原理和熟悉组件启动参数,有助于快速排查解决实际问题
**集群特性:`TLS` 双向认证、`RBAC` 授权、多`Master`高可用、支持`Network Policy`** **集群特性:`TLS` 双向认证、`RBAC` 授权、多`Master`高可用、支持`Network Policy`**
二进制方式部署优势:有助于理解系统各组件的交互原理和熟悉组件启动参数,有助于快速排查解决实际问题
**注意:** 为提高集群网络插件安装的灵活性,使用`DaemonSet Pod`方式运行网络插件,目前支持`Calico` `flannel`可选 **注意:** 为提高集群网络插件安装的灵活性,使用`DaemonSet Pod`方式运行网络插件,目前支持`Calico` `flannel`可选
文档基于`Ubuntu 16.04/CentOS 7`,其他系统需要读者自行替换部分命令;由于使用经验有限和简化脚本考虑,已经尽量避免`ansible-playbook`的高级特性和复杂逻辑。 文档基于`Ubuntu 16.04/CentOS 7`,其他系统需要读者自行替换部分命令;由于使用经验有限和简化脚本考虑,已经尽量避免`ansible-playbook`的高级特性和复杂逻辑。
你可能需要掌握基本`kubernetes` `docker` `linux shell` 知识,关于`ansible`建议阅读 [ansible超快入门](http://weiweidefeng.blog.51cto.com/1957995/1895261) 基本够用。 你可能需要掌握基本`kubernetes` `docker` `linux shell` 知识,关于`ansible`建议阅读 [ansible超快入门](http://weiweidefeng.blog.51cto.com/1957995/1895261) 基本够用。
欢迎提`Issues`和`PRs`参与维护项目。 请阅读[项目分支说明](branch.md)欢迎提`Issues`和`PRs`参与维护项目。
## 组件版本 ## 组件版本
1. kubernetes v1.9.0 1. kubernetes v1.9.1
1. etcd v3.2.11 1. etcd v3.2.13
1. docker 17.09.1-ce 1. docker 17.12.0-ce
1. calico/node v2.6.5 1. calico/node v2.6.5
1. flannel v0.9.1 1. flannel v0.9.1

7
branch.md 100644
View File

@ -0,0 +1,7 @@
## 项目分支说明
目前项目分支为 `master` `v1.9` `v1.8`,说明如下:
- `master` 分支将尽量使用最新版k8s和相关组件网络使用`DaemonSet Pod`方式安装,目前提供`calico` `flannel` 可选
- `v1.9` 分支将尽量使用k8s v1.9的最新小版本和相关组件,使用`systemd service`方式安装 `calico`网络
- `v1.8` 分支将尽量使用k8s v1.8的最新小版本和相关组件,使用`systemd service`方式安装 `calico`网络

View File

@ -149,7 +149,7 @@ mv kubeasz /etc/ansible
# 下载已打包好的binaries并且解压缩到/etc/ansible/bin目录 # 下载已打包好的binaries并且解压缩到/etc/ansible/bin目录
# 国内请从我分享的百度云链接下载 https://pan.baidu.com/s/1c4RFaA # 国内请从我分享的百度云链接下载 https://pan.baidu.com/s/1c4RFaA
# 如果你有合适网络环境也可以按照/down/download.sh自行从官网下载各种tar包到 ./down目录并执行download.sh # 如果你有合适网络环境也可以按照/down/download.sh自行从官网下载各种tar包到 ./down目录并执行download.sh
tar zxvf k8s.190.tar.gz tar zxvf k8s.191.tar.gz
mv bin/* /etc/ansible/bin mv bin/* /etc/ansible/bin
cd /etc/ansible cd /etc/ansible
cp example/hosts.m-masters.example hosts cp example/hosts.m-masters.example hosts

View File

@ -1,10 +1,10 @@
## 07-安装flannel网络组件.md ## 07-安装flannel网络组件.md
**注意:**只需选择安装`calico` `flannel`其中之一,如果你已经安装了`calico`,请跳过此步骤。 ** 注意: ** 只需选择安装`calico` `flannel`其中之一,如果你已经安装了`calico`,请跳过此步骤。
关于k8s网络设计和CNI Plugin的介绍请阅读[安装calico](07-安装calico网络组件.md)中相关内容。 关于k8s网络设计和CNI Plugin的介绍请阅读[安装calico](07-安装calico网络组件.md)中相关内容。
`Flannel`是最早应用到k8s集群的网络插件之一简单高效且提供多个后端`backend`模式供选择;本文介绍`DaemonSet Pod`方式集成到k8s集群需要在所有master节点和node节点安装。 `Flannel`是最早应用到k8s集群的网络插件之一简单高效且提供多个后端`backend`模式供选择;本文介绍`DaemonSet Pod`方式集成到k8s集群需要在所有master节点和node节点安装。
``` text ``` text
roles/flannel/ roles/flannel/

View File

@ -53,7 +53,7 @@ mv kubeasz /etc/ansible
# 下载已打包好的binaries并且解压缩到/etc/ansible/bin目录 # 下载已打包好的binaries并且解压缩到/etc/ansible/bin目录
# 国内请从分享的百度云链接下载 https://pan.baidu.com/s/1c4RFaA # 国内请从分享的百度云链接下载 https://pan.baidu.com/s/1c4RFaA
# 如果你有合适网络环境也可以按照/down/download.sh自行从官网下载各种tar包到 ./down目录并执行download.sh # 如果你有合适网络环境也可以按照/down/download.sh自行从官网下载各种tar包到 ./down目录并执行download.sh
tar zxvf k8s.190.tar.gz tar zxvf k8s.191.tar.gz
mv bin/* /etc/ansible/bin mv bin/* /etc/ansible/bin
# 配置ansible的hosts文件 # 配置ansible的hosts文件
cd /etc/ansible cd /etc/ansible

View File

@ -1,15 +1,15 @@
#!/bin/bash #!/bin/bash
#主要组件版本如下 #主要组件版本如下
export K8S_VER=v1.9.0 export K8S_VER=v1.9.1
export ETCD_VER=v3.2.11 export ETCD_VER=v3.2.13
export DOCKER_VER=17.09.1-ce export DOCKER_VER=17.12.0-ce
export CALICO_VER=v2.6.3 export CNI_VER=v0.6.0
export DOCKER_COMPOSE=1.18.0 export DOCKER_COMPOSE=1.18.0
export HARBOR=v1.2.2 export HARBOR=v1.2.2
echo "\n建议直接下载本人打包好的所有必要二进制包k8s-190.all.tar.gz然后解压到bin目录" echo "\n建议直接下载本人打包好的所有必要二进制包k8s-***.all.tar.gz然后解压到bin目录"
echo "\n建议不使用此脚本如果你想升级组件或者实验请通读该脚本必要时适当修改后使用" echo "\n建议不使用此脚本如果你想升级组件或者实验请通读该脚本必要时适当修改后使用"
echo "\n注意1因为网络原因不进行自动下载,请按照以下链接手动下载二进制包到down目录中" echo "\n注意1请按照以下链接手动下载二进制包到down目录中"
echo "\n注意2如果还没有手工下载tar包请Ctrl-c结束此脚本" echo "\n注意2如果还没有手工下载tar包请Ctrl-c结束此脚本"
echo "\n----download k8s binary at:" echo "\n----download k8s binary at:"
@ -27,18 +27,15 @@ echo https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
echo https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 echo https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
echo https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 echo https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
echo "\n----download calico at:"
echo https://docs.projectcalico.org/v2.6/releases/
echo "\n----download calico cni-plugin at:"
echo https://github.com/projectcalico/cni-plugin/releases
echo "\n----download docker-compose at:" echo "\n----download docker-compose at:"
echo https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE}/docker-compose-Linux-x86_64 echo https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE}/docker-compose-Linux-x86_64
echo "\n----download harbor-offline-installer at:" echo "\n----download harbor-offline-installer at:"
echo https://github.com/vmware/harbor/releases/download/${HARBOR}/harbor-offline-installer-${HARBOR}.tgz echo https://github.com/vmware/harbor/releases/download/${HARBOR}/harbor-offline-installer-${HARBOR}.tgz
echo "\n----download cni plugins at:"
echo https://github.com/containernetworking/plugins/releases/download/${CNI_VER}/cni-${CNI_VER}.tgz
sleep 30 sleep 30
### 准备证书工具程序 ### 准备证书工具程序
@ -96,3 +93,17 @@ if [ -f "docker-${DOCKER_VER}.tgz" ]; then
else else
echo 请先下载docker-${DOCKER_VER}.tgz echo 请先下载docker-${DOCKER_VER}.tgz
fi fi
### 准备cni plugins仅安装flannel需要安装calico由容器专门下载cni plugins
echo "\n准备cni plugins仅安装flannel需要安装calico由容器专门下载cni plugins..."
if [ -f "cni-${CNI_VER}.tgz" ]; then
echo "\nextracting cni plugins binaries..."
tar zxf cni-${CNI_VER}.tgz
mv bridge ../bin
mv flannel ../bin
mv host-local ../bin
mv loopback ../bin
mv portmap ../bin
else
echo 请先下载cni-${CNI_VER}.tgz
fi