Centos7.9 使用 Kubeadm 自动化摆设 K8S 集群(一个脚本)

打印 上一主题 下一主题

主题 898|帖子 898|积分 2694

目录

一、环境准备

1、硬件准备(假造主机)

脚色主机名ip地址masterk8s-master192.168.112.10nodek8s-node1192.168.112.20nodek8s-node2192.168.112.302、操作系统版本

CentOS Linux release 7.9.2009 (Core)
兼容版本包罗7.7~7.9
3、硬件设置

每个假造主机都需要至少分配2核CPU、3GB以上内存(2C3G)、硬盘20G(VMware Workstation)
4、网络


  • 需要可以访问外网(ping -c 2 www.baidu.com 测试连通性)
  • 集群中所有节点之间网络互通(可以提前设置,脚本里也有相关逻辑)
二、注意点

1、主机命名格式
  1. hostnamectl set-hostname <node-name>
复制代码
需要与脚本中预设的集群列表一一对应,ip地址建议使用静态ip(nmtui设置)
  1. # 定义主机名与 IP 地址的映射关系
  2. declare -A hosts=(
  3.     ["k8s-master"]="192.168.112.10"
  4.     ["k8s-node1"]="192.168.112.20"
  5.     ["k8s-node2"]="192.168.112.30"
  6. )
复制代码
2、网络插件 flannel 镜像拉取

主机需要有公钥私钥并添加公钥到 Gitee 的安装设置中的SSH公钥
2.1、主机生成公私钥
  1. ssh-keygen
复制代码
一路回车即可在 ~/.ssh/ 目录下发现 id_ras(私钥)以及id_rsa.pub(公钥)

2.2、为啥有 Github 还用 Gitee



  • 一方面思量到 Github 的网络连接不太稳定可能导致克隆仓库失败(git clone git@something.git
  • 另一方面就是 Github 对仓库限制单个文件大小为 50MB(除非使用 Git LFS 管理文件),因为有一个镜像文件的大小凌驾了 50MB
  • 但其实两者都可以使用(测试过了)
  1. # Github 仓库地址
  2. git clone git@github.com:misakivv/flannel-needs.git
  3. # Gitee 仓库地址
  4. git clone git@gitee.com:kurosaki01/flannel-needs.git
复制代码
对应脚本修改
替换为你喜欢使用的
  1. # 克隆 Gitee 仓库
  2.     echo "克隆 Gitee 仓库..."
  3.     git clone git@gitee.com:kurosaki01/flannel-needs.git
  4. # 检查克隆仓库是否成功
  5. if [ $? -ne 0 ]; then
  6.     echo "克隆仓库失败,可能的原因包括:"
  7.     echo "1. 目标主机没有公钥。"
  8.     echo "2. 公钥没有正确设置到 Gitee 上。"
  9.     echo "3. 克隆仓库时发生网络错误。"
  10.     echo "请检查 SSH 配置和网络连接。"
复制代码
2.3、将主机公钥添加到 Gitee

2.3.1、复制主机上的公钥
  1. cat ~/.ssh/id_rsa.pub
复制代码
2.3.2、登录码云
  1. https://gitee.com/
复制代码
2.3.3、设置 --> 安全设置 --> SSH公钥



2.3.4、添加公钥

标题无所谓
公钥粘贴刚才在主机上复制的内容
每次添加公钥都需要输入账号密码(与 Github 流程一致)
每个节点都需要添加哦,不然摆设网络插件时报(ImagePullBackOff)

2.4、将主机公钥添加到 Github

2.4.1、点击头像 --> settings
  1. https://github.com/dashboard
复制代码

2.4.2、左侧列表中找到 SSH and GPG keys 点击 New SSH key

添加过程与 Gitee 一致,这里不再演示


3、阿里云的镜像加速地址

3.1、镜像加速器地址

这里请在脚本中替换为自己的
  1. https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
复制代码

3.2、对应脚本的修改位置

[code]# 设置 Dockerecho "设置 Docker..."cat > /etc/docker/daemon.json  /etc/hosts        echo "已将 '$node' 添加到 /etc/hosts 文件中。"    fidone# 验证用户输入的主机名与对应的 IP 地址是否存在于本地的 /etc/hosts 文件中ip_address=${hosts[$hostname]}host_line="${ip_address} ${hostname}"if grep -q "$host_line" /etc/hosts; then    echo "主机名 '$hostname' 与对应的 IP 地址 '$ip_address' 已经存在于本地的 /etc/hosts 文件中。"else    echo "主机名 '$hostname' 与对应的 IP 地址 '$ip_address' 未能在本地的 /etc/hosts 文件中找到,请查抄。"fi# 设置 sysctl 参数echo "设置 sysctl 参数..."cat > /etc/sysctl.d/k8s.conf  /etc/docker/daemon.json

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

慢吞云雾缓吐愁

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表