制作一个通用的虚拟机模板方便搭建k8s集群

为了以后能够快速部署k8s集群,按集群部署的先决条件提前做好初始化配置,并制作成虚拟机模板,便于以后有需要就可以直接从这个模板克隆(建议链接克隆)虚拟机出来部署master、node、网络插件等。

  1. 确保每个节点上MAC地址的唯一性

vmware workstation虚拟机设置中,网卡的高级选项里可重新生成mac地址。

  1. 确保product_uuid的唯一性 查看product_uuid
cat /sys/class/dmi/id/product_uuid

vmware workstation中链接克隆后,会自动更新product_uuid。

  1. 放通所需端口

使用的Pod网络插件也可能需要开启某些特定端口,由于各个Pod网络插件的功能都有所不同,可参阅他们各自文档中对端口的要求。

如果制作的模板未启用防火墙,就无需提前配置防火墙策略,忽略这个步骤。

  • 控制节点
协议 方向 端口范围 目的 使用者
TCP 入站 6443 Kubernetes API server 所有
TCP 入站 2379-2380 etcd server client API kube-apiserver, etcd
TCP 入站 10250 Kubelet API 自身, 控制面
TCP 入站 10259 kube-scheduler 自身
TCP 入站 10257 kube-controller-manager 自身

etcd 的端口也列举在控制节点部分,但也可以在外部自建etcd集群或者自定义端口。

  • 工作节点
协议 方向 端口范围 目的 使用者


TCP 入站 10250 Kubelet API 自身, 控制面


TCP 入站 30000-32767 NodePort Services† 所有


所有默认端口都可以重新配置。当使用自定义的端口时,需要打开这些端口来代替这里提到的默认端口。

  1. 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  1. 关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config
  1. 禁止swap分区
sed -ri 's/.*swap.*/#&/' /etc/fstab
  1. 将桥接的IPv4流量传递到iptables链
# 将桥接的IPv4流量传递到iptables链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF

#
 生效
sysctl --system
  1. 同步时间
# 同步阿里云时间
ntpdate ntp1.aliyun.com

#
 开机同步
chmod 755 /etc/rc.d/rc.local 
echo "ntpdate ntp1.aliyun.com" >> /etc/rc.local

#
 或
echo "ntp1.aliyun.com" > /etc/ntp/step-tickers 
  1. 安装Docker
#查看有哪些版本
yum list docker-ce --showduplicates | sort -r

#
 不指定版本则安装最新版本
yum install docker-ce -y

#
 启动
systemctl enable docker
systemcctl start docker

#
 指向阿里云镜像仓库
cat > /etc/docker/daemon.json << EOF
{
  "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]
}
EOF

#
 重启docker
systemctl restart docker
  1. 安装kubeadm、kubelet和kubectl
# 添加阿里云的k8s yum源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

#
 查看当前最新版本
[root@localhost ~]# yum list kubeadm kubelet kubectl
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Available Packages
kubeadm.x86_64                              1.25.3-0                               kubernetes
kubectl.x86_64                              1.25.3-0                               kubernetes
kubelet.x86_64                              1.25.3-0                               kubernetes

#
 不指定版本则安装最新
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet

到此为止,一个通用的模板就制作好了,以后有需要就可以直接从这个模板克隆(建议链接克隆)虚拟机出来部署master、node、网络插件等。


原文始发于微信公众号(不背锅运维):制作一个通用的虚拟机模板方便搭建k8s集群

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/57546.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!