本文是通过ansible-playbook
的roles功能实现二进制批量自动安装部署Kubernetes
集群服务。本想做成离线版本,但由于coredns,ingress,dashboard插件需要拉取镜像,(这里把flannel做成非容器安装版)如需容器版去https://github.com/flannel-io/flannel中获取yaml文件
- 关闭selinux,firewalld
- 关闭swap
- 时间同步
- 写hosts
- 生成etcd证书
- 部署三个etcd集群
- 查看集群状态
- 生成apiserver证书
- 部署apiserver、controller-manager和scheduler组件
- 启动TLS Bootstrapping
- 安装Docker
- 部署kubelet和kube-proxy
- 在Master上允许为新Node颁发证书
- 授权apiserver访问kubelet
- Web UI
- CoreDNS
- Ingress Controller
目录结构:
[root@ceph01 ~]$tree -L 2 k8s/
k8s/
├── ansible.cfg
├── group_vars
│ └── all.yml
├── hosts
├── roles
│ ├── addons # 部署k8s插件目录
│ ├── common # 系统初始化目录
│ ├── docker # docker安装
│ ├── etcd # etcd安装
│ ├── master # master节点
│ ├── nginx # ingrees代理Nginx
│ ├── node # node节点
│ └── tls # 证书生成
└── single.yml