k8s自动化安装脚本(二进制)的操作步骤

目录
  • 介绍
    • 部署结构
  • 操作步骤
    • 环境准备
    • 部署包下载
  • 总结

介绍

通过ansible脚本+shell实现自动化部署k8s基础集群(v1.25.0)

部署结构

1. 通过二进制部署包镜像安装k8s集群、目录etcd节点只支持1-3个节点、最多三个etcd节点

2. 因k8s版本相对较新、需要升级内核来支持后台程序、当前版本只支持Cento7,内核版本(5.19.4-1.el7.elrepo.x86_64)

3. 采用k8s二进制安装,通过system进行管理,采用本地yum仓库,版本是:1.25.0

4. 部署节点安装docker的yum源是基于Centos7.5/7.6,版本是:19.03.14

5. 部署节点安装ansible时,使用离线安装,版本:2.9.27

操作步骤

环境准备

作用 IP地址 操作系统 配置
k8s-master01 192.168.1.13 CentOS7 最低配置2C2G
ansible 192.168.1.140 CentOS7 最低配置1C1G
  • node节点可以填写多个,根据实际情况确认,但是不能超出单master节点的限制
  • master节点至少是三个少一个都不是高可用版本
  • 高可用部署时需要为keepalived提前确认好vip的信息

备注

  • 单独找一台机器用于部署ansible服务,升级内核时需要重启服务器
  • 部署节点部署重启,否则会导致执行报错
  • 但是需要确保机器资源充足,且相关的端口不会冲突(38081【yum】、38082【registry】)
  • 相关的网络关系需要提前确认

解压部署包

#上传部署包(xshell)
yum -y install lrzsz
rz install_k8s_binary_20220905.tar.gz
#解压
tar -xvf install_k8s_binary_20220905.tar.gz -C /opt

修改host文件

#部署机器,初始脚本、安装包镜像
[deploy_server]
192.168.1.11 ansible_user="root" ansible_ssh_pass="1"  ansible_ssh_port=22 hostname="Ansible"

#apiserver、controller、scheduler、通过下面的install_kubelet_enable来确认是否在master节点上安装kubelet、proxy服务
[kubernetes_master]
192.168.1.12 ansible_user="root" ansible_ssh_pass="1"  ansible_ssh_port=22  hostname="k8s-master01"

#kubelet、proxy,可任意添加节点数,只要不超出k8s本身的限制即可
[kubernetes_node]
#192.168.1.13 ansible_user="root" ansible_ssh_pass="1"  ansible_ssh_port=22  hostname="k8s-node01"

#单节点或者三节点其他的暂时不支持,通过脚本解析主机信息,目前只支持1-3个节点
[etcd]
192.168.1.12 ansible_user="root" ansible_ssh_pass="1"  ansible_ssh_port=22 ETCD_NAME="k8s-master01"

#不填写,则不安装镜像仓库、目前尚未完成(待完善)
[docker_repositry]
#192.168.1.136 ansible_user="root" ansible_ssh_pass="1"  ansible_ssh_port=22 hostname="k8s-node01"

#双节点
[haproxy_keepalived]
#192.168.1.12 ansible_user="root" ansible_ssh_pass="1"  ansible_ssh_port=22 hostname="k8s-haproxy"
#192.168.1.12 ansible_user="root" ansible_ssh_pass="1"  ansible_ssh_port=22 hostname="k8s-haproxy"

[nodes:children]
kubernetes_master
kubernetes_node
haproxy_keepalived
etcd

[all:vars]
#interface="ens33"             #部署机器的网卡名称
master_vip="192.168.1.120"     #高可用

#布尔值 true or false
install_kubelet_enable="true"  #master节点是否安装kubelet、kube-proxy
network_enable="false"         #联网状态下,加载网络yum仓库
Basic_enable="true"            #安装基础软件包
clear_cert_data="false"        #清理上一次生成的证书及清理cfssl的安装包

#k8s 组件服务
dashboard_enable="false"       #安装dashboard服务
prometheus_enable="false"      #安装Prometheus服务,尚未完成
ingress_enable="false"         #安装ingress服务,尚未完成

初始化环境

[root@registry]# cd /opt/install_k8s_binary
[root@registry install_k8s_binary]# sh Run.sh
1) 初始化环境(ansible))
2) 安装k8s集群(v1.25.0)(二进制)
----------------------------------------------------------------------------
请输入对应的数字编号:1
请输入部署机的地址(192.168.1.11):
#部署机的地址,通过脚本获取的地址,确认无误后直接回车即可

执行结果

安装docker服务安装ansible服务,修改ansible.cfg配置准备离线yum仓库挂载点是:部署包的下的yum目录准备离线registry仓库,相关挂载点是:/var/images/

安装k8s集群

登录部署机器上执行Run.sh脚本

执行结果如下:

登录master的节点

因本地虚拟机限制,目前使用单节点测试部署,一主一从的也测试可行高可用版本尚未测试,虚拟机测试电脑容易死机

部署包下载

链接: https://pan.baidu.com/s/1-_yDvPnE7Jt167S_9IzWzw?pwd=egwf

提取码: egwf

  • 目前版本,后续会更新
  • 初始化环境时,如果启动报错,出现…iptable…的字段这可以重新执行一次初始化即可正常启动
  • 目前containerd的镜像仓库配置的是初始化的地址,如果需要使用k8s集群,则需要手动修改containerd的配置文件<自行百度添加>(后续优化

总结

上述则是当前部署中可运行正常的服务执行Run.sh 输入init,则可以调试脚本,对应的启动文件,修改,则可以进行调试(playbook/tools/deploy_test.yaml)

(0)

相关推荐

  • k8s自动化安装脚本(二进制)的操作步骤

    目录 介绍 部署结构 操作步骤 环境准备 部署包下载 总结 介绍 通过ansible脚本+shell实现自动化部署k8s基础集群(v1.25.0) 部署结构 1. 通过二进制部署包镜像安装k8s集群.目录etcd节点只支持1-3个节点.最多三个etcd节点 2. 因k8s版本相对较新.需要升级内核来支持后台程序.当前版本只支持Cento7,内核版本(5.19.4-1.el7.elrepo.x86_64) 3. 采用k8s二进制安装,通过system进行管理,采用本地yum仓库,版本是:1.25.

  • docker-compose安装RabbitMQ及插件操作步骤

    目录 准备工作 docker-compose脚本 操作步骤 执行命令 进入容器内,启动我们刚刚添加的插件 查看插件是否有安装成功 优化搭建步骤 目的 思路 步骤 准备工作 RabbitMQ默认不带延迟队列插件,可以到官网去下载指定版本的插件,并手动安装到RabbitMQ环境中,在这里我使用的RabbitMQ版本是: rabbitmq:3.8-management 延迟队列插件版本是: rabbitmq_delayed_message_exchange-3.8.9-0199d11c.ez 以上版本

  • MySQL5.7的安装与配置详细操作步骤

    一.MySQL的下载  1.登陆MySQL的官网下载适用于64位系统的ZIP压缩包(https://dev.mysql.com/downloads/mysql/) 二.解压安装包 将下载的ZIP压缩包解压到任意文件夹.(此处为: C:\mysql5.7) 三.修改配置文件 将解压文件夹目录下的my-default.ini 文件重命名为 my.ini  . 用文本编辑器打开并清空其中内容. 添加内容(参考互联网): [mysql] # 设置mysql客户端默认字符集 default-charact

  • mysql自动化安装脚本(ubuntu and centos64)

    Ubuntu Mysql自动化安装脚本 复制代码 代码如下: #/bin/bash function hasDpkg { r=`dpkg -l | grep "$1"` if [ -n "$r" ] then h=`dpkg -l | grep "ii $1"` if [ -n "$h" ] then return 1 else return 0 fi else return 0 fi } mysql="mysql-

  • golang开发安装go-torch火焰图操作步骤

    目录 安装 使用 另一种自定义显示方式 代码修改 使用 查看 安装 1. 安装go-torch go get github.com/uber/go-torch 2.安装FlameGraph cd $GOPATH && git clone  https://github.com/brendangregg/FlameGraph.git export PATH=$PATH:$GOPATH/FlameGraph [这步一定要设置,生成火焰图时会用到] 3.安装graphviz (CentOS, R

  • Pycharm快速安装OpenCV的详细操作步骤

    目录 前言 以下是几个比较全面的国内pip镜像源: 第一步 第二步 第三步 第四步 第五步 第六步 总结 前言 由于pycharm自带的pip源网站是国外网址,这就导致了许多国内用户在pycharm中下载其他软件包速度极慢,有时还会跳出下载失败的界面. 因此我们可以将pycharm中的pip源网站更换成我们国内的pip镜像源,这样下载速度就会有质的飞跃. 以下是几个比较全面的国内pip镜像源: 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:htt

  • LAMP&LNMP自动化安装脚本代码

    一.脚本的环境介绍二.脚本的介绍三.脚本的功能介绍 一.脚本的环境介绍 此脚本运行在RHEL 6.4版本上运行此脚本需注意:1).主机需要能够上网,因为博主是搭建的搜狐的外网yum源,此yum源由两部分组成,一个是光盘里面的所有软件包,一个是epel源.2).需了解软件之间的相互依赖性. 二.脚本的介绍 脚本是由函数组成,每一个函数实现一个功能 复制代码 代码如下: function  create_yum             #此函数是搭建sohu的yum仓库 function  down

  • 多版本node的安装和切换详细操作步骤

    目录 安装多版本node的原因: 方法一:利用nvm进行管理 NVM 简介 安装前须知: 卸载已安装的nodeJS nvm 的安装与使用 node 的不同版本安装及切换 方法二:通过配置环境变量(切换node时只需更改文件夹名称) 安装node及注意事项 配置环境变量 检查并安装多版本 node版本切换 总结 安装多版本node的原因: 在项目开发过程中,不同项目使用的node版本不同,有时会因为node版本过高或太低,导致报错:如何在同一个系统中安装多个版本的node呢,这里有两种方式,往下看

  • 基于ubuntu下nginx+php+mysql安装配置的具体操作步骤

    1.更新 1 sudo apt-get update 2.安装nginx 1 sudo apt-get intsall nginx Ubuntu安装之后的文件结构大致为:* 所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下*程序文件在/usr/sbin/nginx * 日志放在了/var/log/nginx中*并已经在/etc/init.d/下创建了启动脚本nginx* 默认的虚拟主机的目录设置在了/var/www/ng

  • vtune自动化安装脚本

    复制代码 代码如下: #!/bin/bash#!/usr/bin/expect -f#!/usr/bin/env bashyum install -y expect wgetcd /rootwget http://172.16.92.99/share/tar/vtune_amplifier_xe_2013_update15.tar.gzwget http://172.16.92.99/share/tar/EVAL_L_VT__VGXB-RDCJPN8X.lictar -zxvf vtune_am

随机推荐