二进制安装Kubernetes(k8s)v1.28.3

守听  金牌会员 | 2023-12-16 13:39:28 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 657|帖子 657|积分 1971

二进制安装Kubernetes(k8s)v1.28.3

https://github.com/cby-chen/Kubernetes 开源不易,帮忙点个star,谢谢了
介绍

kubernetes(k8s)二进制高可用安装部署,支持IPv4+IPv6双栈。
我使用IPV6的目的是在公网进行访问,所以我配置了IPV6静态地址。
若您没有IPV6环境,或者不想使用IPv6,不对主机进行配置IPv6地址即可。
不配置IPV6,不影响后续,不过集群依旧是支持IPv6的。为后期留有扩展可能性。
若不要IPv6 ,不给网卡配置IPv6即可,不要对IPv6相关配置删除或操作,否则会出问题。
强烈建议在Github上查看文档 !!!

Github出问题会更新文档,并且后续尽可能第一时间更新新版本文档 !!!

手动项目地址:https://github.com/cby-chen/Kubernetes

1.环境

主机名称IP地址说明软件192.168.1.60外网节点下载各种所需安装包Master01192.168.1.31master节点kube-apiserver、kube-controller-manager、kube-scheduler、etcd、
kubelet、kube-proxy、nfs-client、haproxy、keepalived、nginxMaster02192.168.1.32master节点kube-apiserver、kube-controller-manager、kube-scheduler、etcd、
kubelet、kube-proxy、nfs-client、haproxy、keepalived、nginxMaster03192.168.1.33master节点kube-apiserver、kube-controller-manager、kube-scheduler、etcd、
kubelet、kube-proxy、nfs-client、haproxy、keepalived、nginxNode01192.168.1.34node节点kubelet、kube-proxy、nfs-client、nginxNode02192.168.1.35node节点kubelet、kube-proxy、nfs-client、nginx192.168.1.36VIP网段
物理主机:192.168.1.0/24
service:10.96.0.0/12
pod:172.16.0.0/12
安装包已经整理好:https://ghproxy.com/https://github.com/cby-chen/Kubernetes/releases/download/v1.28.3/kubernetes-v1.28.3.tar
1.1.k8s基础系统环境配置

1.2.配置IP
  1. # 注意!
  2. # 若虚拟机是进行克隆的那么网卡的UUID会重复
  3. # 若UUID重复需要重新生成新的UUID
  4. # UUID重复无法获取到IPV6地址
  5. #
  6. # 查看当前的网卡列表和 UUID:
  7. # nmcli con show
  8. # 删除要更改 UUID 的网络连接:
  9. # nmcli con delete uuid <原 UUID>
  10. # 重新生成 UUID:
  11. # nmcli con add type ethernet ifname <接口名称> con-name <新名称>
  12. # 重新启用网络连接:
  13. # nmcli con up <新名称>
  14. # 更改网卡的UUID
  15. ssh root@192.168.1.31 "nmcli con delete uuid 708a1497-2192-43a5-9f03-2ab936fb3c44;nmcli con add type ethernet ifname eth0 con-name eth0;nmcli con up eth0"
  16. ssh root@192.168.1.32 "nmcli con delete uuid 708a1497-2192-43a5-9f03-2ab936fb3c44;nmcli con add type ethernet ifname eth0 con-name eth0;nmcli con up eth0"
  17. ssh root@192.168.1.33 "nmcli con delete uuid 708a1497-2192-43a5-9f03-2ab936fb3c44;nmcli con add type ethernet ifname eth0 con-name eth0;nmcli con up eth0"
  18. ssh root@192.168.1.34 "nmcli con delete uuid 708a1497-2192-43a5-9f03-2ab936fb3c44;nmcli con add type ethernet ifname eth0 con-name eth0;nmcli con up eth0"
  19. ssh root@192.168.1.35 "nmcli con delete uuid 708a1497-2192-43a5-9f03-2ab936fb3c44;nmcli con add type ethernet ifname eth0 con-name eth0;nmcli con up eth0"
  20. # 参数解释
  21. #
  22. # ssh ssh root@192.168.1.31
  23. # 使用SSH登录到IP为192.168.1.31的主机,使用root用户身份。
  24. #
  25. # nmcli con delete uuid 708a1497-2192-43a5-9f03-2ab936fb3c44
  26. # 删除 UUID 为 708a1497-2192-43a5-9f03-2ab936fb3c44 的网络连接,这是 NetworkManager 中一种特定网络配置的唯一标识符。
  27. #
  28. # nmcli con add type ethernet ifname eth0 con-name eth0
  29. # 添加一种以太网连接类型,并指定接口名为 eth0,连接名称也为 eth0。
  30. #
  31. # nmcli con up eth0
  32. # 开启 eth0 这个网络连接。
  33. #
  34. # 简单来说,这个命令的作用是删除一个特定的网络连接配置,并添加一个名为 eth0 的以太网连接,然后启用这个新的连接。
  35. # 修改静态的IPv4地址
  36. ssh root@192.168.1.104 "nmcli con mod eth0 ipv4.addresses 192.168.1.31/24; nmcli con mod eth0 ipv4.gateway  192.168.1.1; nmcli con mod eth0 ipv4.method manual; nmcli con mod eth0 ipv4.dns "8.8.8.8"; nmcli con up eth0"
  37. ssh root@192.168.1.106 "nmcli con mod eth0 ipv4.addresses 192.168.1.32/24; nmcli con mod eth0 ipv4.gateway  192.168.1.1; nmcli con mod eth0 ipv4.method manual; nmcli con mod eth0 ipv4.dns "8.8.8.8"; nmcli con up eth0"
  38. ssh root@192.168.1.107 "nmcli con mod eth0 ipv4.addresses 192.168.1.33/24; nmcli con mod eth0 ipv4.gateway  192.168.1.1; nmcli con mod eth0 ipv4.method manual; nmcli con mod eth0 ipv4.dns "8.8.8.8"; nmcli con up eth0"
  39. ssh root@192.168.1.109 "nmcli con mod eth0 ipv4.addresses 192.168.1.34/24; nmcli con mod eth0 ipv4.gateway  192.168.1.1; nmcli con mod eth0 ipv4.method manual; nmcli con mod eth0 ipv4.dns "8.8.8.8"; nmcli con up eth0"
  40. ssh root@192.168.1.110 "nmcli con mod eth0 ipv4.addresses 192.168.1.35/24; nmcli con mod eth0 ipv4.gateway  192.168.1.1; nmcli con mod eth0 ipv4.method manual; nmcli con mod eth0 ipv4.dns "8.8.8.8"; nmcli con up eth0"
  41. nmcli con mod eth0 ipv4.gateway 192.168.1.200; nmcli con mod eth0 ipv4.method manual; nmcli con mod eth0 ipv4.dns "223.5.5.5"; nmcli con up eth0
  42. # 参数解释
  43. #
  44. # ssh root@192.168.1.154
  45. # 使用SSH登录到IP为192.168.1.154的主机,使用root用户身份。
  46. #
  47. # "nmcli con mod eth0 ipv4.addresses 192.168.1.31/24"
  48. # 修改eth0网络连接的IPv4地址为192.168.1.31,子网掩码为 24。
  49. #
  50. # "nmcli con mod eth0 ipv4.gateway 192.168.1.1"
  51. # 修改eth0网络连接的IPv4网关为192.168.1.1。
  52. #
  53. # "nmcli con mod eth0 ipv4.method manual"
  54. # 将eth0网络连接的IPv4配置方法设置为手动。
  55. #
  56. # "nmcli con mod eth0 ipv4.dns "8.8.8.8"
  57. # 将eth0网络连接的IPv4 DNS服务器设置为 8.8.8.8。
  58. #
  59. # "nmcli con up eth0"
  60. # 启动eth0网络连接。
  61. #
  62. # 总体来说,这条命令是通过SSH远程登录到指定的主机,并使用网络管理命令 (nmcli) 修改eth0网络连接的配置,包括IP地址、网关、配置方法和DNS服务器,并启动该网络连接。
  63. # 没有IPv6选择不配置即可
  64. ssh root@192.168.1.31 "nmcli con mod eth0 ipv6.addresses fc00:43f4:1eea:1::10; nmcli con mod eth0 ipv6.gateway fc00:43f4:1eea:1::1; nmcli con mod eth0 ipv6.method manual; nmcli con mod eth0 ipv6.dns "2400:3200::1"; nmcli con up eth0"
  65. ssh root@192.168.1.32 "nmcli con mod eth0 ipv6.addresses fc00:43f4:1eea:1::20; nmcli con mod eth0 ipv6.gateway fc00:43f4:1eea:1::1; nmcli con mod eth0 ipv6.method manual; nmcli con mod eth0 ipv6.dns "2400:3200::1"; nmcli con up eth0"
  66. ssh root@192.168.1.33 "nmcli con mod eth0 ipv6.addresses fc00:43f4:1eea:1::30; nmcli con mod eth0 ipv6.gateway fc00:43f4:1eea:1::1; nmcli con mod eth0 ipv6.method manual; nmcli con mod eth0 ipv6.dns "2400:3200::1"; nmcli con up eth0"
  67. ssh root@192.168.1.34 "nmcli con mod eth0 ipv6.addresses fc00:43f4:1eea:1::40; nmcli con mod eth0 ipv6.gateway fc00:43f4:1eea:1::1; nmcli con mod eth0 ipv6.method manual; nmcli con mod eth0 ipv6.dns "2400:3200::1"; nmcli con up eth0"
  68. ssh root@192.168.1.35 "nmcli con mod eth0 ipv6.addresses fc00:43f4:1eea:1::50; nmcli con mod eth0 ipv6.gateway fc00:43f4:1eea:1::1; nmcli con mod eth0 ipv6.method manual; nmcli con mod eth0 ipv6.dns "2400:3200::1"; nmcli con up eth0"
  69. # 参数解释
  70. #
  71. # ssh root@192.168.1.31
  72. # 通过SSH连接到IP地址为192.168.1.31的远程主机,使用root用户进行登录。
  73. #
  74. # "nmcli con mod eth0 ipv6.addresses fc00:43f4:1eea:1::10"
  75. # 使用nmcli命令修改eth0接口的IPv6地址为fc00:43f4:1eea:1::10。
  76. #
  77. # "nmcli con mod eth0 ipv6.gateway fc00:43f4:1eea:1::1"
  78. # 使用nmcli命令修改eth0接口的IPv6网关为fc00:43f4:1eea:1::1。
  79. #
  80. # "nmcli con mod eth0 ipv6.method manual"
  81. # 使用nmcli命令将eth0接口的IPv6配置方法修改为手动配置。
  82. #
  83. # "nmcli con mod eth0 ipv6.dns "2400:3200::1"
  84. # 使用nmcli命令设置eth0接口的IPv6 DNS服务器为2400:3200::1。
  85. #
  86. # "nmcli con up eth0"
  87. # 使用nmcli命令启动eth0接口。
  88. #
  89. # 这个命令的目的是在远程主机上配置eth0接口的IPv6地址、网关、配置方法和DNS服务器,并启动eth0接口。
  90. # 查看网卡配置
  91. # nmcli device show eth0
  92. # nmcli con show eth0
  93. [root@localhost ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
  94. TYPE=Ethernet
  95. PROXY_METHOD=none
  96. BROWSER_ONLY=no
  97. BOOTPROTO=none
  98. DEFROUTE=yes
  99. IPV4_FAILURE_FATAL=no
  100. IPV6INIT=yes
  101. IPV6_AUTOCONF=yes
  102. IPV6_DEFROUTE=yes
  103. IPV6_FAILURE_FATAL=no
  104. IPV6_ADDR_GEN_MODE=stable-privacy
  105. NAME=eth0
  106. UUID=2aaddf95-3f36-4a48-8626-b55ebf7f53e7
  107. DEVICE=eth0
  108. ONBOOT=yes
  109. IPADDR=192.168.1.31
  110. PREFIX=24
  111. GATEWAY=192.168.1.1
  112. DNS1=8.8.8.8
  113. [root@localhost ~]#
  114. # 参数解释
  115. #
  116. # TYPE=Ethernet
  117. # 指定连接类型为以太网。
  118. #
  119. # PROXY_METHOD=none
  120. # 指定不使用代理方法。
  121. #
  122. # BROWSER_ONLY=no
  123. # 指定不仅仅在浏览器中使用代理。
  124. #
  125. # BOOTPROTO=none
  126. # 指定自动分配地址的方式为无(即手动配置IP地址)。
  127. #
  128. # DEFROUTE=yes
  129. # 指定默认路由开启。
  130. #
  131. # IPV4_FAILURE_FATAL=no
  132. # 指定IPv4连接失败时不宣告严重错误。
  133. #
  134. # IPV6INIT=yes
  135. # 指定启用IPv6。
  136. #
  137. # IPV6_AUTOCONF=no
  138. # 指定不自动配置IPv6地址。
  139. #
  140. # IPV6_DEFROUTE=yes
  141. # 指定默认IPv6路由开启。
  142. #
  143. # IPV6_FAILURE_FATAL=no
  144. # 指定IPv6连接失败时不宣告严重错误。
  145. #
  146. # IPV6_ADDR_GEN_MODE=stable-privacy
  147. # 指定IPv6地址生成模式为稳定隐私模式。
  148. #
  149. # NAME=eth0
  150. # 指定设备名称为eth0。
  151. #
  152. # UUID=424fd260-c480-4899-97e6-6fc9722031e8
  153. # 指定设备的唯一标识符。
  154. #
  155. # DEVICE=eth0
  156. # 指定设备名称为eth0。
  157. #
  158. # ONBOOT=yes
  159. # 指定开机自动启用这个连接。
  160. #
  161. # IPADDR=192.168.1.31
  162. # 指定IPv4地址为192.168.1.31。
  163. #
  164. # PREFIX=24
  165. # 指定IPv4地址的子网掩码为24。
  166. #
  167. # GATEWAY=192.168.8.1
  168. # 指定IPv4的网关地址为192.168.8.1。
  169. #
  170. # DNS1=8.8.8.8
  171. # 指定首选DNS服务器为8.8.8.8。
  172. #
  173. # IPV6ADDR=fc00:43f4:1eea:1::10/128
  174. # 指定IPv6地址为fc00:43f4:1eea:1::10,子网掩码为128。
  175. #
  176. # IPV6_DEFAULTGW=fc00:43f4:1eea:1::1
  177. # 指定IPv6的默认网关地址为fc00:43f4:1eea:1::1。
  178. #
  179. # DNS2=2400:3200::1
  180. # 指定备用DNS服务器为2400:3200::1。
复制代码
1.3.设置主机名
  1. hostnamectl set-hostname k8s-master01
  2. hostnamectl set-hostname k8s-master02
  3. hostnamectl set-hostname k8s-master03
  4. hostnamectl set-hostname k8s-node01
  5. hostnamectl set-hostname k8s-node02
  6. # 参数解释
  7. #
  8. # 参数: set-hostname
  9. # 解释: 这是hostnamectl命令的一个参数,用于设置系统的主机名。
  10. #
  11. # 参数: k8s-master01
  12. # 解释: 这是要设置的主机名,将系统的主机名设置为"k8s-master01"。
复制代码
1.4.配置yum源
  1. # 其他系统的源地址
  2. # https://mirrors.tuna.tsinghua.edu.cn/help/
  3. # 对于 Ubuntu
  4. sed -i 's/cn.archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
  5. # 对于 CentOS 7
  6. sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \
  7.          -e 's|^#baseurl=http://mirror.centos.org/centos|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos|g' \
  8.          -i.bak \
  9.          /etc/yum.repos.d/CentOS-*.repo
  10. # 对于 CentOS 8
  11. sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \
  12.          -e 's|^#baseurl=http://mirror.centos.org/$contentdir|baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos|g' \
  13.          -i.bak \
  14.          /etc/yum.repos.d/CentOS-*.repo
  15. # 对于私有仓库
  16. sed -e 's|^mirrorlist=|#mirrorlist=|g' -e 's|^#baseurl=http://mirror.centos.org/\$contentdir|baseurl=http://192.168.1.123/centos|g' -i.bak  /etc/yum.repos.d/CentOS-*.repo
  17. # 参数解释
  18. #
  19. # 以上命令是用于更改系统软件源的配置,以便从国内镜像站点下载软件包和更新。
  20. #
  21. # 对于 Ubuntu 系统,将 /etc/apt/sources.list 文件中的软件源地址 cn.archive.ubuntu.com 替换为 mirrors.ustc.edu.cn。
  22. #
  23. # 对于 CentOS 7 系统,将 /etc/yum.repos.d/CentOS-*.repo 文件中的 mirrorlist 注释掉,并将 baseurl 的值替换为 https://mirrors.tuna.tsinghua.edu.cn/centos。
  24. #
  25. # 对于 CentOS 8 系统,同样将 /etc/yum.repos.d/CentOS-*.repo 文件中的 mirrorlist 注释掉,并将 baseurl 的值替换为 https://mirrors.tuna.tsinghua.edu.cn/centos。
  26. #
  27. # 对于私有仓库,将 /etc/yum.repos.d/CentOS-*.repo 文件中的 mirrorlist 注释掉,并将 baseurl 的值替换为私有仓库地址 http://192.168.1.123/centos。
  28. #
  29. # 这些命令通过使用 sed 工具和正则表达式,对相应的配置文件进行批量的替换操作,从而更改系统软件源配置。
复制代码
1.5.安装一些必备工具
  1. # 对于 Ubuntu
  2. apt update && apt upgrade -y && apt install -y wget psmisc vim net-tools nfs-kernel-server telnet lvm2 git tar curl
  3. # 对于 CentOS 7
  4. yum update -y && yum -y install  wget psmisc vim net-tools nfs-utils telnet yum-utils device-mapper-persistent-data lvm2 git tar curl
  5. # 对于 CentOS 8
  6. yum update -y && yum -y install wget psmisc vim net-tools nfs-utils telnet yum-utils device-mapper-persistent-data lvm2 git network-scripts tar curl
复制代码
1.5.1 下载离线所需文件(可选)

在互联网服务器上安装一个一模一样的系统进行下载所需包
CentOS7
  1. # 下载必要工具
  2. yum -y install createrepo yum-utils wget epel*
  3. # 下载全量依赖包
  4. repotrack createrepo wget psmisc vim net-tools nfs-utils telnet yum-utils device-mapper-persistent-data lvm2 git tar curl gcc keepalived haproxy bash-completion chrony sshpass ipvsadm ipset sysstat conntrack libseccomp
  5. # 删除libseccomp
  6. rm -rf libseccomp-*.rpm
  7. # 下载libseccomp
  8. wget http://rpmfind.net/linux/centos/8-stream/BaseOS/x86_64/os/Packages/libseccomp-2.5.1-1.el8.x86_64.rpm
  9. # 创建yum源信息
  10. createrepo -u -d /data/centos7/
  11. # 拷贝包到内网机器上
  12. scp -r /data/centos7/ root@192.168.1.31:
  13. scp -r /data/centos7/ root@192.168.1.32:
  14. scp -r /data/centos7/ root@192.168.1.33:
  15. scp -r /data/centos7/ root@192.168.1.34:
  16. scp -r /data/centos7/ root@192.168.1.35:
  17. # 在内网机器上创建repo配置文件
  18. rm -rf /etc/yum.repos.d/*
  19. cat > /etc/yum.repos.d/123.repo  << EOF
  20. [cby]
  21. name=CentOS-$releasever - Media
  22. baseurl=file:///root/centos7/
  23. gpgcheck=0
  24. enabled=1
  25. EOF
  26. # 安装下载好的包
  27. yum clean all
  28. yum makecache
  29. yum install /root/centos7/* --skip-broken -y
  30. #### 备注 #####
  31. # 安装完成后,可能还会出现yum无法使用那么再次执行
  32. rm -rf /etc/yum.repos.d/*
  33. cat > /etc/yum.repos.d/123.repo  << EOF
  34. [cby]
  35. name=CentOS-$releasever - Media
  36. baseurl=file:///root/centos7/
  37. gpgcheck=0
  38. enabled=1
  39. EOF
  40. yum clean all
  41. yum makecache
  42. yum install /root/centos7/* --skip-broken -y
  43. #### 备注 #####
  44. # 安装 chrony 和 libseccomp
  45. # yum install /root/centos7/libseccomp-2.5.1*.rpm -y
  46. # yum install /root/centos7/chrony-*.rpm -y
复制代码
1.6.选择性下载需要工具
  1. # 下载必要工具
  2. yum -y install createrepo yum-utils wget epel*
  3. # 下载全量依赖包
  4. repotrack wget psmisc vim net-tools nfs-utils telnet yum-utils device-mapper-persistent-data lvm2 git network-scripts tar curl gcc keepalived haproxy bash-completion chrony sshpass ipvsadm ipset sysstat conntrack libseccomp
  5. # 创建yum源信息
  6. createrepo -u -d /data/centos8/
  7. # 拷贝包到内网机器上
  8. scp -r centos8/ root@192.168.1.31:
  9. scp -r centos8/ root@192.168.1.32:
  10. scp -r centos8/ root@192.168.1.33:
  11. scp -r centos8/ root@192.168.1.34:
  12. scp -r centos8/ root@192.168.1.35:
  13. # 在内网机器上创建repo配置文件
  14. rm -rf /etc/yum.repos.d/*
  15. cat > /etc/yum.repos.d/123.repo  << EOF
  16. [cby]
  17. name=CentOS-$releasever - Media
  18. baseurl=file:///root/centos8/
  19. gpgcheck=0
  20. enabled=1
  21. EOF
  22. # 安装下载好的包
  23. yum clean all
  24. yum makecache
  25. yum install /root/centos8/* --skip-broken -y
  26. #### 备注 #####
  27. # 安装完成后,可能还会出现yum无法使用那么再次执行
  28. rm -rf /etc/yum.repos.d/*
  29. cat > /etc/yum.repos.d/123.repo  << EOF
  30. [cby]
  31. name=CentOS-$releasever - Media
  32. baseurl=file:///root/centos8/
  33. gpgcheck=0
  34. enabled=1
  35. EOF
  36. yum clean all
  37. yum makecache
  38. yum install /root/centos8/* --skip-broken -y
复制代码
1.7.关闭防火墙
  1. #!/bin/bash
  2. logfile=123.log
  3. ret=""
  4. function getDepends()
  5. {
  6.    echo "fileName is" $1>>$logfile
  7.    # use tr to del < >
  8.    ret=`apt-cache depends $1|grep Depends |cut -d: -f2 |tr -d "<>"`
  9.    echo $ret|tee  -a $logfile
  10. }
  11. # 需要获取其所依赖包的包
  12. libs="wget psmisc vim net-tools nfs-kernel-server telnet lvm2 git tar curl gcc keepalived haproxy bash-completion chrony sshpass ipvsadm ipset sysstat conntrack libseccomp"
  13. # download libs dependen. deep in 3
  14. i=0
  15. while [ $i -lt 3 ] ;
  16. do
  17.     let i++
  18.     echo $i
  19.     # download libs
  20.     newlist=" "
  21.     for j in $libs
  22.     do
  23.         added="$(getDepends $j)"
  24.         newlist="$newlist $added"
  25.         apt install $added --reinstall -d -y
  26.     done
  27.     libs=$newlist
  28. done
  29. # 创建源信息
  30. apt install dpkg-dev
  31. sudo cp /var/cache/apt/archives/*.deb /data/ubuntu/ -r
  32. dpkg-scanpackages . /dev/null |gzip > /data/ubuntu/Packages.gz -r
  33. # 拷贝包到内网机器上
  34. scp -r ubuntu/ root@192.168.1.31:
  35. scp -r ubuntu/ root@192.168.1.32:
  36. scp -r ubuntu/ root@192.168.1.33:
  37. scp -r ubuntu/ root@192.168.1.34:
  38. scp -r ubuntu/ root@192.168.1.35:
  39. # 在内网机器上配置apt源
  40. vim /etc/apt/sources.list
  41. cat /etc/apt/sources.list
  42. deb file:////root/ ubuntu/
  43. # 安装deb包
  44. apt install ./*.deb
复制代码
1.8.关闭SELinux
  1. #!/bin/bash
  2. # 查看版本地址:
  3. #
  4. # https://github.com/containernetworking/plugins/releases/
  5. # https://github.com/containerd/containerd/releases/
  6. # https://github.com/kubernetes-sigs/cri-tools/releases/
  7. # https://github.com/Mirantis/cri-dockerd/releases/
  8. # https://github.com/etcd-io/etcd/releases/
  9. # https://github.com/cloudflare/cfssl/releases/
  10. # https://github.com/kubernetes/kubernetes/tree/master/CHANGELOG
  11. # https://download.docker.com/linux/static/stable/x86_64/
  12. # https://github.com/opencontainers/runc/releases/
  13. # https://mirrors.tuna.tsinghua.edu.cn/elrepo/kernel/el7/x86_64/RPMS/
  14. # https://github.com/helm/helm/tags
  15. # http://nginx.org/download/
  16. # Version numbers
  17. cni_plugins_version='v1.3.0'
  18. cri_containerd_cni_version='1.7.8'
  19. crictl_version='v1.28.0'
  20. cri_dockerd_version='0.3.7'
  21. etcd_version='v3.5.10'
  22. cfssl_version='1.6.4'
  23. kubernetes_server_version='1.28.3'
  24. docker_version='24.0.7'
  25. runc_version='1.1.10'
  26. kernel_version='5.4.260'
  27. helm_version='3.13.2'
  28. nginx_version='1.25.3'
  29. # URLs
  30. base_url='https://mirrors.chenby.cn/https://github.com'
  31. kernel_url="http://mirrors.tuna.tsinghua.edu.cn/elrepo/kernel/el7/x86_64/RPMS/kernel-lt-${kernel_version}-1.el7.elrepo.x86_64.rpm"
  32. runc_url="${base_url}/opencontainers/runc/releases/download/v${runc_version}/runc.amd64"
  33. docker_url="https://mirrors.ustc.edu.cn/docker-ce/linux/static/stable/x86_64/docker-${docker_version}.tgz"
  34. cni_plugins_url="${base_url}/containernetworking/plugins/releases/download/${cni_plugins_version}/cni-plugins-linux-amd64-${cni_plugins_version}.tgz"
  35. cri_containerd_cni_url="${base_url}/containerd/containerd/releases/download/v${cri_containerd_cni_version}/cri-containerd-cni-${cri_containerd_cni_version}-linux-amd64.tar.gz"
  36. crictl_url="${base_url}/kubernetes-sigs/cri-tools/releases/download/${crictl_version}/crictl-${crictl_version}-linux-amd64.tar.gz"
  37. cri_dockerd_url="${base_url}/Mirantis/cri-dockerd/releases/download/v${cri_dockerd_version}/cri-dockerd-${cri_dockerd_version}.amd64.tgz"
  38. etcd_url="${base_url}/etcd-io/etcd/releases/download/${etcd_version}/etcd-${etcd_version}-linux-amd64.tar.gz"
  39. cfssl_url="${base_url}/cloudflare/cfssl/releases/download/v${cfssl_version}/cfssl_${cfssl_version}_linux_amd64"
  40. cfssljson_url="${base_url}/cloudflare/cfssl/releases/download/v${cfssl_version}/cfssljson_${cfssl_version}_linux_amd64"
  41. helm_url="https://mirrors.huaweicloud.com/helm/v${helm_version}/helm-v${helm_version}-linux-amd64.tar.gz"
  42. kubernetes_server_url="https://storage.googleapis.com/kubernetes-release/release/v${kubernetes_server_version}/kubernetes-server-linux-amd64.tar.gz"
  43. nginx_url="http://nginx.org/download/nginx-${nginx_version}.tar.gz"
  44. # Download packages
  45. packages=(
  46.   $kernel_url
  47.   $runc_url
  48.   $docker_url
  49.   $cni_plugins_url
  50.   $cri_containerd_cni_url
  51.   $crictl_url
  52.   $cri_dockerd_url
  53.   $etcd_url
  54.   $cfssl_url
  55.   $cfssljson_url
  56.   $helm_url
  57.   $kubernetes_server_url
  58.   $nginx_url
  59. )
  60. for package_url in "${packages[@]}"; do
  61.   filename=$(basename "$package_url")
  62.   if curl --parallel --parallel-immediate -k -L -C - -o "$filename" "$package_url"; then
  63.     echo "Downloaded $filename"
  64.   else
  65.     echo "Failed to download $filename"
  66.     exit 1
  67.   fi
  68. done
复制代码
1.9.关闭交换分区
  1. # Ubuntu忽略,CentOS执行
  2. systemctl disable --now firewalld
复制代码
1.10.网络配置(俩种方式二选一)

[code]# Ubuntu忽略,CentOS执行# 方式一# systemctl disable --now NetworkManager# systemctl start network && systemctl enable network# 方式二cat > /etc/NetworkManager/conf.d/calico.conf  /etc/chrony.conf  /etc/chrony.conf > /etc/security/limits.conf  /etc/modules-load.d/ipvs.conf
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

守听

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

标签云

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