类型
状态
日期
链接
摘要
标签
分类
图标
密码
二进制安装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.安装命令行自动补全功能
附录
- 作者:Cloud1024
- 链接:https://itq5.com/posts/linux_k8s_install
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。