k8s的搭建脚本---------说明
# k8s集群自动化搭建项目## 介绍本项目在多个centos7.5节点上搭建k8s集群制作了自动搭建集群的脚本,只需要集中修改一个配置文件,即可通过运行脚本完成搭建工作集群中安装了coredns服务DNF、dashboard面板展示、EFK日志聚合管理基础服务。- single_master文件夹使用kubeadm 搭建单master节点的k8s集群- minikube 文件夹使用minikub
# k8s集群自动化搭建项目
## 介绍
本项目在多个centos7.5节点上搭建k8s集群
制作了自动搭建集群的脚本,只需要集中修改一个配置文件,即可通过运行脚本完成搭建工作
集群中安装了coredns服务DNF、dashboard面板展示、EFK日志聚合管理基础服务。
- single_master文件夹
使用kubeadm 搭建单master节点的k8s集群
- minikube 文件夹
使用minikube搭建本地集群
- ha 文件夹
搭建高可用高安全性的k8s集群,搭建过程比较复杂,
搭建的集群内部使用tls加密通信,安全性高
通过nginx实现了多个master节点的高可用,允许master节点宕机不影响集群服务能力。
## 使用minukube搭建单机开发用集群
主要参考了以下内容:
Minikube - Kubernetes本地实验环境
https://yq.aliyun.com/articles/221687
该文提供了自己编译的minikube二进制文件,替换了镜像地址,解决了镜像被墙的问题。
我是在archlinux上安装的
- 先安装virtualbox pacman -S virtualbox
- 选择带arch内核模块
- 加载内核模块 modprobe vboxdrv
- 修改配置文件使之在启动时自动加载
启动命令:
minikube start --cpus 4 --memory 4096 --disk-size "100G" --registry-mirror=https://n8m3bosn.mirror.aliyuncs.com
## 搭建单master节点的集群
1.首先设置节点的hostname和固定IP地址
hostnamectl set-hostname xxxxxx
2.修改configrc中的节点配置信息
3.选一个节点作为master节点,并登录执行脚本
4.使用1upgrade_the_kernel_allnode.sh脚本升级内核,在每个节点上都进行升级
5.使用2setup_ssh.sh设置hosts文件,设置master节点可以免密登陆其他节点
6.使用3setup_base_env_allnode.sh安装必要的软件包和进行系统设置,每个节点都要进行设置
7.使用4kubeadm_init_master.sh利用kubeadm工具进行初始化,kubeadm会将本节点设置为master节点,
并使用ssh自动将其他节点加入到集群
8.重置的命令在kubeadm_reset.sh里面
## 多master节点高可用加密集群搭建
如果是虚拟机部署:
创建nat网络,端口转发222到22,启动sshd
scp -r -P 222 ha root@localhost:/root
1首先设置节点的hostname和固定IP地址
hostnamectl set-hostname xxxxxx
2修改configrc中的节点配置信息
3选一个节点将脚本传到/opt/k8s/work中,将附加的二进制文件也都传到该目录
按顺序执行以下脚本,脚本将自动分发文件到其他节点,自动完成集群构建
1.upgrade_the_kernel_allnode.sh 升级内核,每个节点都要执行
2.setup_base_env_allnode.sh 安装基本软件包,配置基本系统参数
3.setup_ssh.sh 设置hosts文件和节点ssh免密码登录
4.setup_ca_certs.sh 生成ca加密和签名文件
5.setup_kubectl.sh 安装kubectl,配置kubectl使用的config文件
6.setup_etcd.sh 搭建etcd集群,etcd持久化集群的所有参数
7.setup_flannel.sh 搭建容器网络并验证网络互通
8.setup_nginx.sh 编译nginx,为apiserver制作反向代理
9.setup_master_api-server.sh 部署apiserver集群并验证
10.setup_master_controller-manager.sh 部署contollermanager集群
11.setup_master_scheduler.sh 部署scheduler集群
12.setup_worker_docker.sh 部署docker
13.setup_worker_kubelet.sh 部署kubelet服务,完成后需要手动操作approve证书
14.setup_worker_kube-proxy.sh 部署kube-proxy服务
15.check_cluster.sh 检验集群搭建结果
16.setup_coredns.sh 安装coredns插件
configrc 基本配置文件
## nginx ingress反向代理设置
setup_nginx_ingress_controller.sh 脚本建立了新的命名空间,设置了ingress-controller
ingress编写的例子参考example,其中暴露了dashboard服务,dashboard服务需要使用https,
nginx配置了https,并配置了通过https访问dashboard
## app文件夹中配置安装一些应用
dashboard、EFK、metrics-server
后面将会陆续安装一些其他基础服务
更多推荐
所有评论(0)