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

数新网络官网已全新上线,欢迎点击访问

数新网络_让每个人享受数据的价值浙江数新网络有限公司是一家开源开放、专注于云数据智能操作系统和数据价值流通的服务商。公司自主研发的DataCyber云数据智能操作系统,主要包括云数据平台CyberMeta、数据科学平台CyberScience、数据智能引擎CyberEngine、数据安全平台CyberSecurity。数新网络可提供大数据开发管理、安全合规、建模分析、价值流通等多种服务,让大数据、AI和数据价值安全流通得到高质量结合,助力客户实现数字化、智能化转型,激活数据要素潜能,提升企业整体竞争力。如何使用三台虚拟机搭建一个kubernetes集群?_第1张图片https://www.datacyber.com数新网络_让每个人享受数据的价值

本次搭建采用kubeadm工具,创建一主多从(单Master)Kubernetes集群。在集群中,有一台Master节点负责控制平面,多台Node节点负责运行容器。

Kubernetes是一个开源的容器编排平台,可以帮助简化容器化应用程序的部署、扩展和管理。在Kubernetes集群搭建过程中,有多种部署方式可选,包括kubeadm、Minikube和二进制包。本次选择使用kubeadm,因为它是快速搭建Kubernetes集群的常用工具。

主机规划:

M角色

IP地址

环境

Master

192.168.85.4

Centos 7.9

Node01

192.168.85.5

Centos 7.9

Node02

192.168.85.6

Centos 7.9

​​​​​​​

流程描述:

1)准备3台机器,要求网络互通,同时可联网。

2)关闭防火墙、selinux、swap分区等,这些是可能会导致k8s集群出问题的地方,需要提前配置好。

3)安装Docker容器化环境,同时安装核心组件:kubeadm、kubelet、kubectl等。

4)下载k8s所需镜像,创建一个Master节点,将Node节点加入到当前集群。

5)在k8s集群安装相关服务进行验证,登录k8s的WEB的用户界面dashboard。

集群环境配置:

1.修改主机名 

如何使用三台虚拟机搭建一个kubernetes集群?_第2张图片

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配置文件

如何使用三台虚拟机搭建一个kubernetes集群?_第3张图片 

8.拉取k8s集群需要的镜像版本

如何使用三台虚拟机搭建一个kubernetes集群?_第4张图片 

拉取完成后执行改变coredns的标记

如何使用三台虚拟机搭建一个kubernetes集群?_第5张图片 

Ps:三台机器都执行

9.初始化master节点

如何使用三台虚拟机搭建一个kubernetes集群?_第6张图片 

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

 

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

 

你可能感兴趣的:(kubernetes,java,容器)