K8S集群搭建记录

K8S集群搭建记录

前期准备工作

首先,需要准备至少2台机器(1主1从),虚拟机也可以,但是必须保证是Linux系统,windows虽然也可以,但部署成本及其高昂。推荐部署使用Centos系统,本记录基于Centos 7系统进行作业。

一般要求master节点为4核,内存够用就行;node节点为4核,但内存要够大,因为需要承载业务。本次记录使用的master配置为4核4G 硬盘16G,node节点为4核6G 硬盘32G

step 1 服务器基本环境部署(每一台机器都需要操作)

  1. 安装Centos 7 系统,安装步骤参考网上各类安装教程,这里给个随便找的范例,注意在选择软件安装时选择compute node。
  2. 指定一台机器可以登录到其他任何的机器,方便后续操作各机器。然后配置ssh免登录,单向即可
  3. 修改主机名,即hostnamectl操作
  4. 永久关闭selinux
  5. 永久关闭交换分区
  6. 调整ssh超时时间
  7. 配置固定ip地址
  8. 关停防火墙(也可以不关;对于master节点,需要开放10257、10259、43233、10248、10249、10252、10256、10250、10251、6443端口;node除此之外则需按照业务需要开放端口)
  9. 更新内核(如果用的是很久的Centos 7镜像,必须更新内核并修改启动优先级
  10. 同步时间(若必要)
  11. 重启
  12. 安装Docker(或Containerd),设置容器承载软件为开机自启
  13. 安装kubectl、kubeadm、kubelet,设置kubelet为开机自启
  14. 安装named(解析机器域名,或直接编辑/etc/hosts),配置域名
  15. (选择其中一台机器部署即可)nginx(反向代理,后期配置为流量入口或高可用代理)、Haproxy(自选,后期配置为流量入口或高可用代理)、keepalived(自选,保证nginx或Haproxy高可用)

step 2 开始安装k8s基本设施

单master节点版本(单master搭建线路)

单master节点为难度最低的部署版本,最少需要一台master机器,一台node机器(不部署业务的话,master就够了)。

部署路径为:

开始
获取配置yaml文件
按自己的需求编写配置文件
初始化master节点
使node计算节点join进集群
配置网络calico或flannel
节点状态就绪
结束

为方便后期部署,建议使用yaml文件配置后建立集群的部署方式,本次实验使用的kubeadm。

详细建设记录

多master节点版本(多master搭建线路)

多master节点若不考虑高可用,其实与join其他节点相类似,只不过多了拷贝证书和指令后增加”–control-palne“两步而已

开始
单节点建设步骤
将证书拷贝到新master节点的/etc/kubernetest/pki下
join节点时在最后增加control-plane指令
结束

详细建设记录

step 3 集群卸载记录

卸载集群主要分三步:
1,从集群中删除节点及其节点信息
2,被删除的节点进行reset
3,删除节点上网络组件文件

第一步,删除节点和节点信息(master上完成)
排除节点:

kubectl drain master01.server

从集群中删除节点信息:

kubectl delete node master01.server

第二步,reset节点
kubeadm reset -f 

第三步,删除网络组件信息
[root@master01 ~]# cd /etc/cni/net.d
[root@master01 net.d]# rm -rf *

完成整体卸载操作

note 安装过程错误记录

X509错误:

Unable to connect to the server: x509: certificate is valid for..., not...

此错误我的问题是图省事,把pki目录打包后传到新master机器上,没有将apiserver、front-proxy-client等证书删除就拷入了/etc/kubernetest/pki中,删除这几个证书再join就行。


doesn’t have a stable controlPlaneEndpoint address:

One or more conditions for hosting a new control plane instance is not satisfied.

unable to add a new control plane instance a cluster that doesn't have a stable controlPlaneEndpoint address

Please ensure that:
* The cluster has a stable controlPlaneEndpoint address.
* The certificates that must be shared among control plane instances are provided.

此错误我的问题是没有设置controlPlaneEndpoint参数,有两个解决方法:

注意:controlPlaneEndpoint在yaml文件中与etcd配置同缩进


版权声明:本文为Arabira原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。