写点什么

如何使用三台虚拟机搭建一个 kubernetes 集群?

  • 2023-08-03
    浙江
  • 本文字数:1165 字

    阅读完需:约 4 分钟

官网链接: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


最后,记得做一下虚拟机的快照,方便关机后还原!


发布于: 刚刚阅读数: 4
用户头像

云数据智能操作系统领导者 2022-12-05 加入

浙江数新网络有限公司是一家拥抱开源,专注于云数据平台的大数据服务商,致力于结合全球云数仓先进理念,打造适合中国落地路径的云数仓体系。

评论

发布
暂无评论
如何使用三台虚拟机搭建一个kubernetes集群?_Kubernetes, 云原生, eBPF_数新网络官方账号_InfoQ写作社区