如何使用三台虚拟机搭建一个 kubernetes 集群?
官网链接:https://www.datacyber.com 快来联系我们吧!
学习并总结一下使用三台虚拟机搭建一个 kubernetes 集群的过程。
本次搭建采用 kubeadm 工具,创建一主多从(单 Master)Kubernetes 集群。在集群中,有一台 Master 节点负责控制平面,多台 Node 节点负责运行容器。
Kubernetes 是一个开源的容器编排平台,可以帮助简化容器化应用程序的部署、扩展和管理。在 Kubernetes 集群搭建过程中,有多种部署方式可选,包括 kubeadm、Minikube 和二进制包。本次选择使用 kubeadm,因为它是快速搭建 Kubernetes 集群的常用工具。
流程描述:
1)准备 3 台机器,要求网络互通,同时可联网。
2)关闭防火墙、selinux、swap 分区等,这些是可能会导致 k8s 集群出问题的地方,需要提前配置好。
3)安装 Docker 容器化环境,同时安装核心组件:kubeadm、kubelet、kubectl 等。
4)下载 k8s 所需镜像,创建一个 Master 节点,将 Node 节点加入到当前集群。
5)在 k8s 集群安装相关服务进行验证,登录 k8s 的 WEB 的用户界面 dashboard。
集群环境配置:
1.修改主机名
2.修改 hosts 文件
ps:在 node1,node2 也需同样配置
3.关闭防火墙和 SELinux
ps:三台机器都执行
4.关闭 swap 分区
ps:三台机器都执行,注释掉包含 swap 这一行。
问题:k8s 集群为什么要关闭 swap?
Kubernetes 云原生的实现目的是将运行实例紧密包装到尽可能接近 100%,所有的部署、运行环境应该与 CPU 以及内存限定在一个可控的空间内。所以如果调度程序发送一个 Pod 到某一台节点机器,它不应该使用 Swap。如果使用 swap,则其实 node 的 pod 使用内存总和可能超过了 node 的内存,这样其实就达不到资源的严格限制和管理的目的。
5.修改网卡配置
6.免密登录
ps:三台机器都执行,目的是方便节点间直接连接。测试如下:
7. 安装 k8s 和 docker
修改 docker 配置文件
Ps:三台机器都执行,因 k8s 组件高版本多次安装失败,遂采用低版本安装。
8. 拉取 k8s 集群需要的镜像版本
拉取完成后执行改变 coredns 的标记
Ps:三台机器都执行
9.初始化 master 节点
Ps:只在 master 节点执行
初始化成功后会出现一下内容
根据提示信息操作
10 .node 配置
问题:执行后加入失败,查看 node 状态发现是 NotReady,查看集群 Pod 状态,在查看节点日志发现缺少网络插件。
所以在 master 上安装一个插件
再次查看 node 状态已经 Ready,节点也可以加入 master.
11. 拉取 Nginx 镜像进行配置
查看 pod 和服务
查看映射的随机端口
测试 Nginx 服务
12.安装 k8s-dashboard
1. 创建一个 nodePort 类型的 kubernetes-dashboard。进入/etc/kubernetes 目录下创建配置文件 dashboard-svc.yaml:
2. 创建 kubernetes-dashboard 的 Service 服务:
3. 此时再次查看 namespace,已经有 nodePort 类型的 kubernetes-dashboard,注意 443:31487,即外部访问端口为 31487。
4. .获取 token,先查找 token 文件
5. 查看外部访问端口
6. 访问,如https://192.168.85.4:31487
最后,记得做一下虚拟机的快照,方便关机后还原!
版权声明: 本文为 InfoQ 作者【数新网络官方账号】的原创文章。
原文链接:【http://xie.infoq.cn/article/29cc515a6333b8e66153e68ad】。文章转载请联系作者。
评论