ccyunchina-deploy/README.md

99 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 说明
*部署脚本于长城专有云平台*
部署脚本中包括了kubernetes底层组件、efk等一系列服务的安装。采用ansbile脚本实现自动安装运维人员需要对ansible工具有一定简单了解。主要服务基本实现全容器化、k8s化部署可以通过kubernetes dashboard监控到所有容器服务部署脚本基于centos 7 或者kylin v10 sp1要求内核版本为4以上既提供一键快速安装方式也提供分步执行安装方式。
# 组件版本
| 名称 | 版本号 | 备注 |
|-------------------------|--------------|----------|
| Kernel | 4以上 | |
| kube-apiserver | 1.21.0 | |
| kube-controller-manager | 1.21.0 | |
| kube-scheduler | 1.21.0 | |
| kube-proxy | 1.21.0 | |
| kubelet | 1.21.0 | |
| etcd | 3.3.15 | |
| calico | 3.3.1 | |
| docker | 18.06.3-ce | |
| coredns | 1.6.2 | |
| kubernets-dashboard | 1.10.1 | |
| traefik | 2.1.1 | |
| pause | 3.1 | |
| elasticsearch | 6.2.4 | |
| keepalived | 2.0.19-r0 | |
| Haproxy | 2.1.2 | |
| gluster | 4.0 | |
| heketi | 6.0 | |
| metrics-server | 0.2.0 | |
| node-problem-detector | 0.4.1 | |
| openvpn | 2.1 | |
| efk | 7.10.2 | |
| mysql | 8.0 | |
| redis | 5.0 | |
| rocketmq | 4.5.0 | |
| gw-proprietary-cloud | 0.1 | |
# 部署示意图
![k8s部署图](https://github.com/toyangdon/k8s_deploy/blob/master/kubernetes%20%E7%BB%84%E7%BB%87%E5%9B%BE.png?raw=true)
# 快速安装
1. 安装ansible
`yum install -y ansible`
2. 下载部署文件到部署节点的/etc/ansible目录下
`git clone depth=1 https://git.trustie.net/toyangdon/proprietary-cloud-deploy.git`
将部署文件复制到/etc/ansible目录下
`cp -rf k8s_deploy/* /etc/ansible/`
3. 配置集群安装信息
**根据实际情况修改`hosts`文件**
`vi /etc/ansible/hosts`
4. 配置ssh免密码
`sh tools/ssh-key-copy.sh root ${passwd} #请输入实际的root用户密码`
5. 执行一键安装
**centos**
`ansible-playbook setup.yml`
**kylin v10 sp1**
`ansible-playbook -e 'ansible_python_interpreter=/usr/bin/python3.7' setup.yml`
**单机部署**
`ansible-playbook -e 'apiserver_mem_requests=100Mi' -e 'apiserver_cpu_requests=100m' setup.yml`
# 分步安装
`playbooks`目录提供分步安装的相关playbook主要分为两大块`kubernetes`和`gpaas`
## `kubernetes` 部署
1. `ansible-playbook playbooks/kubernetes/00.check.yml` 检查集群服务器
1. `ansible-playbook playbooks/kubernetes/01.docker.yml` 在所有主机上安装并启动docker服务
2. `ansible-playbook playbooks/kubernetes/02.prepare.yml` 服务器通用配置,生成并分发集群所需相关证书
3. `ansible-playbook playbooks/kubernetes/03.harbor.yml` 部署harbor节点安装并启动harbor服务可选
4. `ansible-playbook playbooks/kubernetes/04.lb.yml` 准备lb节点所需的相关安装文件包括keepalived和haproxy
5. `ansible-playbook playbooks/kubernetes/05.kube-master.yml` 准备master节点所需的相关安装文件
6. `ansible-playbook playbooks/kubernetes/06.kube-node.yml` 在主机上安装并启动kubelet服务先启动lb,再启动master最后启动kube-node
7. `ansible-playbook playbooks/kubernetes/07.calico.yml` 在主机上准备calico服务所需要的相关安装文件与flannel可选
8. `ansible-playbook playbooks/kubernetes/07.flannel.yml` 在主机上准备flannel服务所需要的相关安装文件与calico可选 (暂时不可用)
9. `ansible-playbook playbooks/kubernetes/09.storage-nfs.yml` 安装nfs服务与gfs可选暂时不可用
10. `ansible-playbook playbooks/kubernetes/10.storage-gluster.yml` 准备安装gfs服务
11. `ansible-playbook playbooks/kubernetes/20.addnode.yml` 新增节点
12. `ansible-playbook playbooks/kubernetes/30.addons.yml` kubernetes所有插件服务的部署包括kube-proxy、kubedns、calico、glusterfs等等
13. `ansible-playbook playbooks/kubernetes/90.setup.yml` 一键安装kubernetes,即顺序执行以上所有步骤除了20.addnode
14. `ansible-playbook playbooks/kubernetes/99.clean.yml` 一键清理kubernetes集群慎用
## `gpass` 部署
目前分为`efk`和`monitor`二部分
### `efk` 部署
1. `ansible-playbook playbooks/gpaas/elk/01.es.yml` es部署
3. `ansible-playbook playbooks/gpaas/elk/02.fluentd.yml` fluentd
4. `ansible-playbook playbooks/gpaas/elk/03.kibana.yml` kibana部署
5. `ansible-playbook playbooks/gpaas/elk/90.setup.yml` 一键安装elk即顺序执行以上所有步骤
### `monitor` 部署
1. `ansible-playbook playbooks/gpaas/monitor/01.prometheus.yml` prometheus部署
2. `ansible-playbook playbooks/gpaas/monitor/90.setup.yml` 一键安装监控平台,即顺序执行以上所有步骤
### 一键部署`gpass`
1. `ansible-playbook playbooks/gpaas/90.setup.yml`
## `专有云组件`部署
1. `ansible-playbook playbooks/proprietary-cloud/90.setup.yml`
# `ansible`容器化
1. 安装docker
`systemctl stop firewalld` #关闭防火墙
`sh tools/docker/install.sh`
2. 运行ansible镜像执行k8s安装
`/opt/k8s/bin/docker run --name ansible -it --privileged -v /root/k8s-install:/etc/ansible toyangdon/ansible:latest` #进入容器内执行ansible脚本