文章目录
K8S集群搭建记录
前期准备工作
首先,需要准备至少2台机器(1主1从),虚拟机也可以,但是必须保证是Linux系统,windows虽然也可以,但部署成本及其高昂。推荐部署使用Centos系统,本记录基于Centos 7系统进行作业。
一般要求master节点为4核,内存够用就行;node节点为4核,但内存要够大,因为需要承载业务。本次记录使用的master配置为4核4G 硬盘16G,node节点为4核6G 硬盘32G
step 1 服务器基本环境部署(每一台机器都需要操作)
- 安装Centos 7 系统,安装步骤参考网上各类安装教程,这里给个随便找的范例,注意在选择软件安装时选择compute node。
- 指定一台机器可以登录到其他任何的机器,方便后续操作各机器。然后配置ssh免登录,单向即可
- 修改主机名,即hostnamectl操作
- 永久关闭selinux
- 永久关闭交换分区
- 调整ssh超时时间
- 配置固定ip地址
- 关停防火墙(也可以不关;对于master节点,需要开放10257、10259、43233、10248、10249、10252、10256、10250、10251、6443端口;node除此之外则需按照业务需要开放端口)
- 更新内核(如果用的是很久的Centos 7镜像,必须更新内核并修改启动优先级)
- 同步时间(若必要)
- 重启
- 安装Docker(或Containerd),设置容器承载软件为开机自启
- 安装kubectl、kubeadm、kubelet,设置kubelet为开机自启
- 安装named(解析机器域名,或直接编辑/etc/hosts),配置域名
- (选择其中一台机器部署即可)nginx(反向代理,后期配置为流量入口或高可用代理)、Haproxy(自选,后期配置为流量入口或高可用代理)、keepalived(自选,保证nginx或Haproxy高可用)
step 2 开始安装k8s基本设施
单master节点版本(单master搭建线路)
单master节点为难度最低的部署版本,最少需要一台master机器,一台node机器(不部署业务的话,master就够了)。
部署路径为:
为方便后期部署,建议使用yaml文件配置后建立集群的部署方式,本次实验使用的kubeadm。
多master节点版本(多master搭建线路)
多master节点若不考虑高可用,其实与join其他节点相类似,只不过多了拷贝证书和指令后增加”–control-palne“两步而已
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参数,有两个解决方法:
- 直接kubectl编辑增加参数
- 在启动脚本中增加controlPlaneEndpoint配置
注意:controlPlaneEndpoint在yaml文件中与etcd配置同缩进
版权声明:本文为Arabira原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。