企业级k8s集群部署

如题所述

第1个回答  2022-07-04

二进制包

注:推荐用二进制包部署Kubernetes集群,虽手动部署麻烦,但可以学习很多工作原理利于后期维护。

环境

可以使用VMware虚拟机,宿主机必须8G内存以上

• 服务器可以访问外网,有从网上拉取镜像的需求

单Master服务器规划:( 注:部署时候根据具体环境进行IP地址调整即可 )



这里使用3台组建集群,可容忍1台机器故障,当然,你也可以使用5台组建集群

etcd1: 192.168.3.110 etcd2: 192.168.3.112 etcd3: 192.168.3.113

cfssl是一个开源的证书管理工具,使用json文件生成证书,相比openssl更方便使用。

找任意一台服务器操作,这里用Master节点。

创建工作目录:

自签CA:

生成证书:

会生成ca.pem和ca-key.pem文件。

创建证书申请文件:

注:上述文件hosts字段中IP为所有etcd节点的集群内部通信IP,一个都不能少!为了方便后期扩容可以多写几个预留的IP。

生成证书:

会生成etcd.pem和etcd-key.pem文件。

https://github.com/etcd-io/etcd/releases/download/v3.5.1/ etcd-v3.5.1-linux-amd64.tar.gz

以下在节点1上操作,然后将文件拷贝到其他集群机器

把刚才生成的证书拷贝到配置文件中的路径:

注意修改节点2和节点3分别etcd.conf配置,按照下面提示的修改

启动各节点的etcd服务

如果输出上面信息,就说明集群部署成功。

如果有问题看日志:/var/log/message

docker二进制下载地址:

https://download.docker.com/linux/static/stable/x86_64/docker-19.03.9.tgz

注:使用yum安装也行

集群所有机器都安装docker

生成证书:

会生成ca.pem和ca-key.pem文件。

创建证书申请文件:

生成证书:

会生成k8s.pem和k8s-key.pem文件。

下载地址参考:

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md

https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md#downloads-for-v12013

Wget https://dl.k8s.io/v1.20.13/kubernetes-server-linux-amd64.tar.gz


把刚才生成的证书拷贝到配置文件中的路径:

TLS Bootstrapping 机制,对work-node加入进行自签证书用


创建上述配置文件中token文件:

token 可以自行生产,百度下怎么生产

kube-apiserver服务


生成kube-controller-manager证书:

生成kubeconfig文件(以下是shell命令,直接在终端执行):

生成kube-scheduler证书:

生成kubeconfig文件:


生成kubeconfig文件:

通过kubectl工具查看当前集群组件状态:


在所有worker node创建工作目录:

从master节点拷贝:

注:由于网络插件还没有部署,节点会没有准备就绪 NotReady

二进制包下载地址:https://github.com/containernetworking/plugins/releases



确保kubelet启用CNI:




在Master执行:



应用场景:例如kubectl logs

在Master节点将Worker Node涉及文件拷贝到新节点192.168.3.112/113

注:这几个文件是证书申请审批后自动生成的,每个Node不同,必须删除

Node2(192.168.3.113 )节点同上。记得修改主机名!


访问地址:https://NodeIP:30001

创建service account并绑定默认cluster-admin管理员集群角色:

使用输出的token登录Dashboard。

CoreDNS用于集群内部Service名称解析。

DNS解析测试:

这样 单Master集群就搭建完成了