deployk8s
deployk8s copied to clipboard
部署生产可用kubernetes集群
deployk8s
- 有问题可以去dockone.io提问,也可以直接提issue
- 本人从事容器编排方面工作,本项目算是一些小笔记。内容包括热门的kubernetes、mesos编排工具及其周边的网络、存储、监控等方案(ps: 仅供参考,对刚入门的小伙伴来说难度可能稍大。示例
yaml
文件优先).
部署说明文档
注意事项
做高可用必须保证master节点为2个及其以上,推荐3个节点
文档分为六个部分
- 基础镜像和环境准备
- master 节点部署
- 使用haproxy负载减轻单个kube-apiserver压力,并使用keepalived保证高可用
- agent节点部署
- 增强插件部署
- 网络方案部署
目录结构说明
#####Attentions:
- 版本说明: 操作系统为centos 7.2,docker 版本为1.10+(目前1.12.6),kubernetes原本为1.4.6,后kubernetes核心组件升级到1.5.1,但是插件没有更新。
- 对于kubernetes及其周边组件,我的原则是:
能容器化的一定不直接跑宿主机,能通过应用方式部署的绝对不跑static pod
-
- [x] 表示需要关注
-
- [ ] 表示不需要关注
- [ ] /addons
包含kubernetes一些插件,大都以deployment/replication方式部署
- [x] /dashboard
kubernetes官方提供的dashboard
- [x] /dns
kubernetes官方提供的dns插件
- [x] /haconfd
haproxy + confd 用来做应用外部访问,原理类似ingress,目前只能通过static pod方式部署,路由规则模板需要手工配置
- [ ] /ingress
kubernetes 中应用外部访问的另一种方式,具体请参考官方文档
- [x] /prometheus
prometheus 是一个流行的监控告警工具,与kubernetes同属CNCF基金会
- [x] /dashboard
- [x] /base
base 目录包含kubernetes及其高可用方案核心组件
- [x] /agent
kubernetes agent节点服务,包含kubelet(systemd service)和kube-proxy(static pod)
- [x] /haka
haproxy + keepalived(systemd service) kube-apiserver高可用关键组件
- [x] /master
kubernetes master 节点服务,包含kubelet(systemd service)和etcd/kube-apiserver/kube-controller-manager/kube-scheduler(static pod)
- [ ] /config.yaml
需要镜像删除时,registry配置文件
- [x] /docker.service
docker(systemd service)公共基础服务配置示例
- [x] /k8s-log.cron
日志处理定时脚本
- [ ] /tools.sh
镜像仓库操作脚本
- [x] /agent
- [ ] /doc
- [ ] /images
- [ ] /network
kubernetes中可选的容器网络方案
- [x] /calico
calico 网络方案,部署方式为daemonset,默认ippool开启了IPIP[ps: 推荐使用]
- [x] /flannel
flannel网络方案,部署方式为static pod(部署成功后请使用restart_docker.sh脚本重启docker)(ps: 正考虑用daemonset部署)
- [x] /calico
- [ ] /storage
kubernetes中可选的容器存储方案
- [x] /rbd
kubernetes 与ceph rbd对接示例文件(ps: yaml文件优先)
- [x] /rbd