Skip to content

Commit

Permalink
更新版本说明
Browse files Browse the repository at this point in the history
  • Loading branch information
jmgao1983 committed Nov 26, 2017
1 parent 249850e commit 712c01b
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 30 deletions.
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
down/*
!down/download.sh
bin/
bin/*
!bin/VERSION.md
hosts
*.crt
*.pem
Expand Down
25 changes: 13 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,27 +2,24 @@

![docker](./pics/docker.jpg) ![kube](./pics/kube.jpg) ![ansible](./pics/ansible.jpg)

本文档记录自己实践部署高可用k8s集群的过程,利用ansible-playbook简化二进制方式部署过程。
本系列文档致力于提供快速部署高可用`k8s`集群的工具,并且也努力成为`k8s`实践、使用的参考书;基于二进制方式部署和利用`ansible-playbook`实现自动化:既提供一键安装脚本,也可以分步执行安装各个组件,同时讲解每一步主要参数配置和注意事项。**二进制方式部署优势:有助于理解系统各组件的交互原理和熟悉组件启动参数,有助于快速排查解决实际问题**

网上有很多类似shell脚本和ansible部署版本,要不看得太复杂,或者久未更新,所以这里自己造轮子吧。
集群特性:`TLS` 双向认证、`RBAC` 授权、多`Master`高可用、支持`Network Policy`

二进制方式手动部署,将有助于理解系统各组件的交互原理和熟悉组建启动参数,进而能快速解决实际问题
文档基于`Ubuntu 16.04`,其他系统如`CentOS 7`需要读者自行替换部分命令;由于使用`ansible`经验有限和简化`ansible-playbook`脚本考虑,已经尽量避免高级特性和复杂逻辑

1. 建议阅读 [feisky.gitbooks](https://feisky.gitbooks.io/kubernetes/) 原理和部署章节。
1. 建议阅读 [opsnull教程](https://github.com/opsnull/follow-me-install-kubernetes-cluster) 二进制手工部署。

本文是按照上述文档,更新组件实践修饰而成,修改了部分安全特性。

## 特性
## 组件版本

1. 截至2017-10-4 最新组件版本,参见[down版本](./down/download.sh) 文件。
1. 因本人部署节点IP属于同一网段,使用flannel新后端[host-gw](https://github.com/coreos/flannel/blob/master/Documentation/backends.md) 提升部分性能。
1. kubernetes v1.8.4
1. etcd v3.2.10
1. docker 17.09.0-ce
1. calico/node v2.6.2

## 快速指南

以下为快速体验k8s集群的测试、开发环境--AllinOne部署,觉得比官方的minikube方便、简单很多。

### 1.准备一台虚机(推荐内存3G,CPU 2,硬盘 30G以上),安装Ubuntu16.04,配置基础网络、更新源、SSH登陆等。
### 1.准备一台虚机(推荐内存3G,硬盘20G以上),安装Ubuntu16.04,配置基础网络、更新源、SSH登陆等。
### 2.安装python2/git/python-pip/ansible
``` bash
# 更新
Expand Down Expand Up @@ -80,3 +77,7 @@ kubectl get svc --all-namespaces # 可以查看所有集群服务状态
1. 规划集群节点,完成ansible inventory文件[参考](hosts)
1. 其他安装步骤同单节点安装

1. 建议阅读 [feisky.gitbooks](https://feisky.gitbooks.io/kubernetes/) 原理和部署章节。
1. 建议阅读 [opsnull教程](https://github.com/opsnull/follow-me-install-kubernetes-cluster) 二进制手工部署。

[ansible超快入门](http://weiweidefeng.blog.51cto.com/1957995/1895261)
5 changes: 5 additions & 0 deletions bin/VERSION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# 主要组件版本
kubernetes v1.8.4
etcd v3.2.10
docker 17.09.0-ce
calico/node v2.6.2
22 changes: 5 additions & 17 deletions down/download.sh
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#!/bin/bash
#主要组件版本如下
export K8S_VER=v1.7.6
export ETCD_VER=v3.2.8
export K8S_VER=v1.8.4
export ETCD_VER=v3.2.10
export DOCKER_VER=17.09.0-ce
export CALICO_VER=v1.6.2
export CALICO_VER=v2.6.2

echo "\n----download k8s binary at:"
echo https://dl.k8s.io/${K8S_VER}/kubernetes-server-linux-amd64.tar.gz
Expand All @@ -12,9 +12,6 @@ echo "\n----download etcd binary at:"
echo https://github.com/coreos/etcd/releases/download/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz
echo https://storage.googleapis.com/etcd/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz

echo "\n----download calicoctl binary at:"
echo https://github.com/projectcalico/calicoctl/releases/download/${CALICO_VER}/calicoctl

echo "\n----download docker binary at:"
echo https://download.docker.com/linux/static/stable/x86_64/docker-${DOCKER_VER}.tgz

Expand All @@ -30,7 +27,6 @@ echo "-rw-r--r-- 1 root root 2277873 Mar 30 2016 cfssljson_linux-amd64"
echo "-rw-r--r-- 1 root root 10376657 Mar 30 2016 cfssl_linux-amd64"
echo "-rwxr--r-- 1 root root 29699281 Aug 24 17:09 docker-17.06.1-ce.tgz*"
echo "-rwxr--r-- 1 root root 10176124 Aug 24 17:09 etcd-v3.2.6-linux-amd64.tar.gz*"
echo "-rwxr--r-- 1 root root 9090192 Aug 24 17:09 flannel-v0.8.0-linux-amd64.tar.gz*"
echo "-rwxr--r-- 1 root root 437406487 Aug 24 17:09 kubernetes-server-linux-amd64.tar.gz*"

echo "\n注意2:如果还没有手工下载tar包,请Ctrl-c结束此脚本\nsleep 60"
Expand Down Expand Up @@ -65,16 +61,8 @@ else
echo 请先下载etcd-${ETCD_VER}-linux-amd64.tar.gz
fi

### 准备flannel程序
echo "\n准备flannel二进制程序..."
if [ -f "flannel-${FLANNEL_VER}-linux-amd64.tar.gz" ]; then
echo "\nextracting flannel binaries..."
tar zxf flannel-${FLANNEL_VER}-linux-amd64.tar.gz
mv flanneld mk-docker-opts.sh ../bin
rm README.md
else
echo 请先下载flannel-${FLANNEL_VER}-linux-amd64.tar.gz
fi
### 准备calico程序
echo "\n下载calico/node镜像\ndocker pull calico/node:2.6.2"

### 准备kubernetes程序
echo "\n准备kubernetes二进制程序..."
Expand Down

0 comments on commit 712c01b

Please sign in to comment.