使用ansible一键安装 k8s

环境需求:

centos7系统

ansible已安装

项目功能

1.准备工作

* ntp * chrony * disable selinux * set firewalld * set swap * set kernel

2.安装yum源

* install httpd * unzip rpm package

3.安装docker

* set config * install docker

4.安装docker镜像仓库

* unzip package * run registry service

5.安装k8s

* Install kubeadm/kubelet/kubectl * master init * add node * appply ingress * appply dashboard

6.安装ceph

* install ceph

安装步骤

1.导入所需要的包

Baidu cloud address:

leave a message in issue

把所有下载的包放入如下目录: \ {{ projectname }}/artifacts/

containerd-selinux-v2.119.2.tar \

docker-ce-stable-v20.10.7.tar \

kubernetes-v1.21.2.tar \

registry-1.21.2.tar.gz

百度网盘: 链接:https://pan.baidu.com/s/1XF-W3R-E6pWK2st-k1r3Qg 提取码:jsth

2.编写 hosts.ini

lombok.config
[all:vars]
ansible_connection=ssh
ansible_user=zhangsan
ansible_password=9876557
# same as `ansible_ssh_pass`
ansible_become_pass=9876557
[kubernetes:children]
kubernetes_master
kubernetes_master_slaves
kubernetes_slaves
[kubernetes_master_all:children]
kubernetes_master
kubernetes_master_slaves
[kubernetes_master]
172.16.<strong>.</strong>*
[kubernetes_master_slaves]
[kubernetes_slaves]
172.16.<strong>.</strong>*
172.16.<strong>.</strong>*
[docker:children]
kubernetes
registry
[registry]
172.16.<strong>.</strong>*
[repo]
172.16.<strong>.</strong>

3.编写 shared.yml

#---------------------------------
## Docker image repo
##---------------------------------
docker_repo_ip: "172.20.<strong>.</strong>*"
docker_repo_address: "*<strong>k8s-registry-address</strong>*:<strong>port</strong>"
docker_repo_domain_name: "*<strong>k8s-registry-address</strong>*"
master_ip: "172.20.<strong>.</strong>*"
kubernetes_api: "apiserver.***<strong>.local"
#---------------------------------
### package repo
###---------------------------------
#
repo: "172.20.</strong>.***

4.检查各个role目录下的参数配置是否正确 defult/main.yml file

check eack role's defult/main.yml file ,set paramete

5. 安装

{{projectname}} is project name ,is k8s-ansible/

cd {{projectname}} 
执行如下指令:
ansible-playbook ./playbooks/01_prepare.yml
ansible-playbook ./playbooks/02_yum_repo.yml
ansible-playbook ./playbooks/03_docker_install.yml
ansible-playbook ./playbooks/04_install_docker_register.yml
ansible-playbook ./playbooks/05_install_k8s.yml
ansible-playbook ./playbooks/06_install_ceph.ym

f you want to test whether the configuration file is correct first, as in the above steps, add -C after the instruction, for example:

ansible-playbook ./playbooks/01_prepare.yml -

6. 问题:

1.When the running is interrupted, you want to repeat it.

2.ceph安装用简单的块设备就可以识别

版本列表

kubeadm v1.21.2 \ cni:v3.20.2 \ pod2daemon-flexvol:v3.20.2 \ node:v3.20.2 \ kube-controllers:v3.20.2 \ ingress-nginx-controller:0.30.0 \ metrics-scraper:v1.0.6 \ dashboard:v2.2.0 \ metrics-server:0.4.4 \ \ coredns:1.8.0 \ etcd:3.4.13-0 \ pause:3.4.1 \ kube-proxy:v1.21.2 \ kube-scheduler:v1.21.2 \ kube-controller-manager:v1.21.2 \ kube-apiserver:v1.21.2 \ \ \ ceph:v1.6.7 \ cephcsi:v3.3.1 \ csi-node-driver-registrar:v2.2.0 \ csi-resizer:v1.2.0 \ csi-provisioner:v2.2.2 \ csi-snapshotter:v4.1.1 \ csi-attacher:v3.2.1 \ ceph:v15.2.13