二进制安装Kubernetes(k8s)v1.31.1
00 分钟
2024-4-15
2025-2-23
类型
状态
日期
链接
摘要
标签
分类
图标
密码

二进制安装Kubernetes(k8s)v1.31.1

介绍

https://github.com/cby-chen/Kubernetes 开源不易,帮忙点个star,谢谢了

kubernetes(k8s)二进制高可用安装部署,支持IPv4+IPv6双栈。

强烈建议在Github上查看文档 !!!

Github出问题会更新文档,并且后续尽可能第一时间更新新版本文档 !!!

手动项目地址:https://github.com/cby-chen/Kubernetes

1.环境

主机名称
IP地址
说明
软件
192.168.1.60
外网节点
下载各种所需安装包
Master01
192.168.1.31
master节点
kube-apiserver、kube-controller-manager、kube-scheduler、etcd、kubelet、kube-proxy、nfs-client、haproxy、keepalived、nginx
Master02
192.168.1.32
master节点
kube-apiserver、kube-controller-manager、kube-scheduler、etcd、kubelet、kube-proxy、nfs-client、haproxy、keepalived、nginx
Master03
192.168.1.33
master节点
kube-apiserver、kube-controller-manager、kube-scheduler、etcd、kubelet、kube-proxy、nfs-client、haproxy、keepalived、nginx
Node01
192.168.1.34
node节点
kubelet、kube-proxy、nfs-client、nginx
Node02
192.168.1.35
node节点
kubelet、kube-proxy、nfs-client、nginx
192.168.1.36
VIP
网段 物理主机:192.168.1.0/24 service:10.96.0.0/12 pod:172.16.0.0/12

1.1.k8s基础系统环境配置

1.2.配置IP

1.3.设置主机名

1.4.配置yum源

1.5.安装一些必备工具

下载离线所需文件(可选)

在互联网服务器上安装一个一模一样的系统进行下载所需包

CentOS7

CentOS8

CentOS9

Ubuntu 下载包和依赖

1.6.选择性下载需要工具

1.7.关闭防火墙

1.8.关闭SELinux

1.9.关闭交换分区

1.10.网络配置(俩种方式二选一)

1.11.进行时间同步

1.12.配置ulimit

1.13.配置免密登录

1.14.添加启用源

1.15.升级内核至4.18版本以上

1.16.安装ipvsadm

1.17.修改内核参数

1.18.所有节点配置hosts本地解析

2.k8s基本组件安装

注意 : 2.1 和 2.2 二选其一即可

2.1.安装Containerd作为Runtime (推荐)

2.1.1配置Containerd所需的模块

2.1.2加载模块

2.1.3配置Containerd所需的内核

2.1.4创建Containerd的配置文件

2.1.5启动并设置为开机启动

2.1.6配置crictl客户端连接的运行时位置

安装docker作为Runtime

解压docker程序

创建containerd的service文件

准备docker的service文件

准备docker的socket文件

配置加速器

启动docker

解压cri-docker

写入启动cri-docker配置文件

写入cri-docker的socket配置文件

启动cri-docker

2.3.k8s与etcd下载及安装(仅在master01操作)

2.3.1解压k8s安装包

2.3.2查看版本

2.3.3将组件发送至其他k8s节点

2.3创建证书相关文件

3.相关证书生成

3.1.生成etcd证书

特别说明除外,以下操作在所有master节点操作

3.1.1所有master节点创建证书存放目录

3.1.2master01节点生成etcd证书

3.1.3将证书复制到其他节点

3.2.生成k8s相关证书

特别说明除外,以下操作在所有master节点操作

所有k8s节点创建证书存放目录

master01节点生成k8s证书

生成apiserver聚合证书

生成controller-manage的证书

在《5.高可用配置》选择使用那种高可用方案 若使用 haproxy、keepalived 那么为 --server=https://192.168.1.36:9443 若使用 nginx方案,那么为 --server=https://127.0.0.1:8443

生成kube-scheduler的证书

生成admin的证书配置

创建kube-proxy证书

在《5.高可用配置》选择使用那种高可用方案 若使用 haproxy、keepalived 那么为 --server=https://192.168.1.36:9443 若使用 nginx方案,那么为 --server=https://127.0.0.1:8443

创建ServiceAccount Key ——secret

将证书发送到其他master节点

查看证书

4.k8s系统组件配置

4.1.etcd配置

4.1.1master01配置

4.1.2master02配置

4.1.3master03配置

4.2.创建service(所有master节点操作)

4.2.1创建etcd.service并启动

4.2.2创建etcd证书目录

4.2.3查看etcd状态

5.高可用配置(在Master服务器上操作)

注意 5.1.1 和5.1.2 二选一即可*
选择使用那种高可用方案,同时可以俩种都选用,实现内外兼顾的效果,比如: 5.1 的 NGINX方案实现集群内的高可用 5.2 的 haproxy、keepalived 方案实现集群外访问
在《3.2.生成k8s相关证书》
若使用 nginx方案,那么为 --server=https://127.0.0.1:8443 若使用 haproxy、keepalived 那么为 --server=https://192.168.1.36:9443

NGINX高可用方案

进行编译

写入启动配置

在所有主机上执行

keepalived和haproxy 高可用方案

5.2.1安装keepalived和haproxy服务

5.2.2修改haproxy配置文件(配置文件一样)

参数

5.2.3Master01配置keepalived master节点

5.2.4Master02配置keepalived backup节点

5.2.5Master03配置keepalived backup节点

参数

5.2.6健康检查脚本配置(lb主机)

5.2.7启动服务

5.2.8测试高可用

6.k8s组件配置

所有k8s节点创建以下目录

6.1.创建apiserver(所有master节点)

6.1.1master01节点配置

6.1.2master02节点配置

6.1.3master03节点配置

参数

6.1.4启动apiserver(所有master节点)

6.2.配置kube-controller-manager service

参数

6.2.1启动kube-controller-manager,并查看状态

6.3.配置kube-scheduler service

6.3.1所有master节点配置,且配置相同

参数

6.3.2启动并查看服务状态

7.TLS Bootstrapping配置

7.1在master01上配置

7.2查看集群状态,没问题的话继续后续操作

8.node节点配置

8.1.在master01上将证书复制到node节点

8.2.kubelet配置

注意 : 8.2.1 和 8.2.2 需要和 上方 2.1 和 2.2 对应起来

8.2.1当使用docker作为Runtime

8.2.2当使用Containerd作为Runtime (推荐)

8.2.3所有k8s节点创建kubelet的配置文件

8.2.4启动kubelet

8.2.5查看集群

8.2.6查看容器运行时

8.3.kube-proxy配置

8.3.1将kubeconfig发送至其他节点

8.3.2所有k8s节点添加kube-proxy的service文件

8.3.3所有k8s节点添加kube-proxy的配置

8.3.4启动kube-proxy

9.安装网络插件

注意 9.1 和 9.2 二选其一即可,建议在此处创建好快照后在进行操作,后续出问题可以回滚
** centos7 要升级libseccomp 不然 无法安装网络插件**

9.1安装Calico

9.1.1更改calico网段

9.1.2查看容器状态

安装cilium(推荐)

安装helm

安装cilium

查看

下载专属监控面板

安装时候没有创建 监控可以忽略

修改为NodePort

安装时候没有创建 监控可以忽略

查看端口

安装时候没有创建 监控可以忽略

访问

安装时候没有创建 监控可以忽略

10.安装CoreDNS

10.1以下步骤只在master01操作

10.1.1修改文件

11.安装Metrics Server

11.1以下步骤只在master01操作

11.1.1安装Metrics-server

在新版的Kubernetes中系统资源的采集均使用Metrics-server,可以通过Metrics采集节点和Pod的内存、磁盘、CPU和网络的使用率

11.1.2稍等片刻查看状态

12.集群验证

12.1部署pod资源

12.2用pod解析默认命名空间中的kubernetes

12.3测试跨命名空间是否可以解析

12.4每个节点都必须要能访问Kubernetes的kubernetes svc 443和kube-dns的service 53

12.5Pod和Pod之前要能通

12.6创建三个副本,可以看到3个副本分布在不同的节点上(用完可以删了)

13.安装dashboard

13.1更改dashboard的svc为NodePort,如果已是请忽略

13.2查看端口号

13.3创建token

13.4创建长期token

13.5登录dashboard

14.ingress安装

14.1执行部署

14.2过滤查看ingress端口

15.IPv6测试

16.污点

17.安装命令行自动补全功能

附录

上一篇
搭建一个IPV6代理地址池
下一篇
CentOS7.9 搭建内部yum源服务器同步阿里yum源

评论
Loading...
目录