# ansible-offline-kubernetes-v1.20.4-deploy-cluster **Repository Path**: phpdavid/ansible-k8s-v1.20 ## Basic Information - **Project Name**: ansible-offline-kubernetes-v1.20.4-deploy-cluster - **Description**: ansible一键部署离线部署v1.20.4集群,包括harbor私库,nfs,监控promethus,日志efk等服务,定期更新 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 9 - **Forks**: 2 - **Created**: 2021-03-30 - **Last Updated**: 2024-07-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ansible快速部署kubernetes1.20集群 前提:ansible工具,所有服务器必须保证密码统一,服务器配置静态IP,服务器配置不通的主机名,配置hosts解析 ## 必备工具ansible ``` yum install epel-release -y yum install ansible -y # 背景:在linux上下载很多的国外的软件,因为网络的原因,导致下载速度非常的吗,或者当某一天我们的服务器下载源出现问题的时候,我们不妨将自己的服务器的下载源修改一下,变成国内的下载源,下载速度会非常的快速。 cd /etc/yum.repos.d mkdir repo-bak mv *.repo repo-bak wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget https://mirrors.aliyun.com/repo/epel-7.repo yum clean all && yum makecache ``` ## 下载安装镜像 链接:https://pan.baidu.com/s/1wDJRHtf6tOQZuPEoBVrjsA 提取码:7ho2 下载上传到ansible服务器/root目前下,可以通过group_vars/all.yml修改存放位置 默认版本只V1.20 安装最新版本,自行到官网下载二进制包,替换安装包中的etcd,kubernetes,docker安装文件 ## v1.22 https://github.com/etcd-io/etcd/releases/download/v3.5.0/etcd-v3.5.0-linux-amd64.tar.gz https://storage.googleapis.com/kubernetes-release/release/v1.22.1/kubernetes-server-linux-amd64.tar.gz https://download.docker.com/linux/static/stable/x86_64/docker-20.10.8.tgz 其他版本自行选择 ## 配置ansible文件 1、安装包目录中的hosts文件 ``` [master] # 如果部署单Master,只保留一个Master节点 # 默认Naster节点也部署Node组件 192.168.3.101 node_name=master01 192.168.3.102 node_name=master02 192.168.3.103 node_name=master03 [node] 192.168.3.104 node_name=node01 192.168.3.105 node_name=node02 192.168.3.106 node_name=node03 [etcd] 192.168.3.101 etcd_name=etcd-1 192.168.3.102 etcd_name=etcd-2 192.168.3.103 etcd_name=etcd-3 [lb] # 如果部署单Master,该项忽略 192.168.3.107 lb_name=lb-master 192.168.3.108 lb_name=lb-backup [nfs_server] 192.168.3.109 [k8s:children] master node [newnode] #192.168.31.75 node_name=k8s-node3 ``` 2、修改group_vars/all.yml文件,修改软件包目录和证书可信任IP ``` # 安装目录 software_dir: '/root/binary_pkg' k8s_work_dir: '/opt/kubernetes' etcd_work_dir: '/opt/etcd' tmp_dir: '/tmp/k8s' # 集群网络 service_cidr: '10.0.0.0/24' cluster_dns: '10.0.0.2' # 与roles/addons/files/coredns.yaml中IP一致,并且是service_cidr中的IP pod_cidr: '10.244.0.0/16' # 与roles/addons/files/calico.yaml中网段一致 service_nodeport_range: '30000-32767' cluster_domain: 'cluster.local' # nfs nfs_server: '192.168.3.109' nfs_path: '/nfs/data/' # 高可用,如果部署单Master,该项忽略 vip: '192.168.3.111' nic: 'ens32' # 自签证书可信任IP列表,为方便扩展,可添加多个预留IP cert_hosts: # 包含所有LB、VIP、Master IP和service_cidr的第一个IP k8s: - 10.0.0.1 - 192.168.3.101 - 192.168.3.102 - 192.168.3.103 - 192.168.3.104 - 192.168.3.105 - 192.168.3.106 - 192.168.3.107 - 192.168.3.108 - 192.168.3.109 - 192.168.3.110 - 192.168.3.111 # 包含所有etcd节点IP etcd: - 192.168.3.101 - 192.168.3.102 - 192.168.3.103 ``` ## 安装命令 ``` 完整安装 # 集群+log+monitor ansible-playbook -i hosts multi-deploy-all.yml -uroot -k ansible-playbook -i hosts single-deploy-all.yml -uroot -k 单步骤安装 # 单master ansible-playbook -i hosts single-master-deploy.yml -uroot -k # 多master ansible-playbook -i hosts multi-master-deploy.yml -uroot -k # 安装日志采集 ansible-playbook -i hosts log-efk-deploy.yml -uroot -k # 安装监控告警 ansible-playbook -i hosts monitor-deploy.yml -uroot -k #删除集群(删除集群,nfs服务端,harbor服务端) ansible-playbook -i hosts remove-cluster.yml -uroot -k #重启服务器 ansible-playbook -i hosts reboot-server.yml -uroot -k #dashbord秘钥文件 kubectl describe secrets -n kube-system $(kubectl -n kube-system get secret | awk '{print $1}'| grep metrics) | grep token #监控 grafana访问地址 http://192.168.3.101:30100 默认用户密码 admin/admin promethus访问地址 http://192.168.3.101:30200 #日志 kibana访问地址 http://192.168.3.101:32100 ``` 部署产生的证书都会存放到目录“ansible-install-k8s-master/ssl”,一定要保存好,后面还会用到~ ``` 持续更新中,后续会加入harbor,jenkins,gitlab,nexus等,敬请关注 ```