v1.22.10-CentOS-binary-install-IPv6-IPv4-Three-Masters-Two-Slaves

二进制安装Kubernetes(k8s) v1.22.10 IPv4/IPv6双栈

Kubernetes 开源不易,帮忙点个star,谢谢了🌹

介绍

kubernetes二进制安装

后续尽可能第一时间更新新版本文档

1.22.10 和 1.23.3 和 1.23.4 和 1.23.5 和 1.23.6 和 1.23.7 和 1.24.0 和1.24.1 文档以及安装包已生成。

我使用IPV6的目的是在公网进行访问,所以我配置了IPV6静态地址。

若您没有IPV6环境,或者不想使用IPv6,不对主机进行配置IPv6地址即可。

不配置IPV6,不影响后续,不过集群依旧是支持IPv6的。为后期留有扩展可能性。

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

每个初始版本会打上releases,安装包在releases页面

https://github.com/cby-chen/Kubernetes/releases

(下载更快)我自己的网盘:https://pan.oiox.cn/s/PetV

1.环境

主机名称
IP地址
说明
软件

Master01

10.0.0.81

master节点

kube-apiserver、kube-controller-manager、kube-scheduler、etcd、 kubelet、kube-proxy、nfs-client、haproxy、keepalived

Master02

10.0.0.82

master节点

kube-apiserver、kube-controller-manager、kube-scheduler、etcd、 kubelet、kube-proxy、nfs-client、haproxy、keepalived

Master03

10.0.0.83

master节点

kube-apiserver、kube-controller-manager、kube-scheduler、etcd、 kubelet、kube-proxy、nfs-client、haproxy、keepalived

Node01

10.0.0.84

node节点

kubelet、kube-proxy、nfs-client

Node02

10.0.0.85

node节点

kubelet、kube-proxy、nfs-client

10.0.0.89

VIP

软件
版本

内核

4.18.0-373.el8.x86_64

CentOS 8

v8 或者 v7

kube-apiserver、kube-controller-manager、kube-scheduler、kubelet、kube-proxy

v1.22.10

etcd

v3.5.4

containerd

v1.6.6

cfssl

v1.6.1

cni

v1.1.1

crictl

v1.23.0

haproxy

v1.8.27

keepalived

v2.1.5

网段

物理主机:192.168.1.0/24

service:10.96.0.0/12

pod:172.16.0.0/12

如果有条件建议k8s集群与etcd集群分开安装

1.1.k8s基础系统环境配置

1.2.配置IP

1.3.设置主机名

1.4.配置yum源

1.5.安装一些必备工具

1.6.选择性下载需要工具

1.7.关闭防火墙

1.8.关闭SELinux

1.9.关闭交换分区

1.10.关闭NetworkManager 并启用 network (lb除外)

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.所有k8s节点安装Containerd作为Runtime

2.1.1配置Containerd所需的模块

2.1.2加载模块

2.1.3配置Containerd所需的内核

2.1.4创建Containerd的配置文件

2.1.5启动并设置为开机启动

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

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

2.2.1解压k8s安装包

2.2.2查看版本

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

2.3创建证书相关文件

3.相关证书生成

3.1.生成etcd证书

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

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

3.1.2master01节点生成etcd证书

3.1.3将证书复制到其他节点

3.2.生成k8s相关证书

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

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

3.2.2master01节点生成k8s证书

3.2.3生成apiserver聚合证书

3.2.4生成controller-manage的证书

3.2.5创建ServiceAccount Key ——secret

3.2.6将证书发送到其他master节点

3.2.7查看证书

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.高可用配置

5.1在master01和master02和master03服务器上操作

5.1.1安装keepalived和haproxy服务

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

5.1.3配置keepalived master节点

5.1.4lb02配置keepalived backup节点

5.1.5配置keepalived backup节点

5.1.5健康检查脚本配置

5.1.6启动服务

5.1.7测试高可用

6.k8s组件配置(区别于第4点)

所有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所有k8s节点创建相关目录

注意若是CentOS7,将 --node-labels=node.kubernetes.io/node='' 替换为 --node-labels=node.kubernetes.io/node='' 删除

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

8.2.3启动kubelet

8.2.4查看集群

8.3.kube-proxy配置

8.3.1此配置只在master01操作

8.3.2将kubeconfig发送至其他节点

8.3.3所有k8s节点添加kube-proxy的配置和service文件

8.3.4启动kube-proxy

9.安装Calico

群里网友反映说 centos7 要升级libseccomp 不然 无法安装calico

9.1以下步骤只在master01操作

9.1.1更改calico网段

9.1.2查看容器状态

10.安装CoreDNS

10.1以下步骤只在master01操作

10.1.1修改文件

10.1.2安装

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创建管理员用户

13.2执行yaml文件

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

13.4查看端口号

13.5查看token

13.6登录dashboard

https://10.0.0.81:31245/

eyJhbGciOiJSUzI1NiIsImtpZCI6IjZ3RFhuV1U5dmgwbmJESEdHYjR2SUNHeWFjdzMwWnRUb2pYZXNGNUlrb2cifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLXFmbWY2Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI5NDRjNWJmNi0wNTlhLTRlNWUtOGIxOC00NjI5NTZkZDA0NjYiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06YWRtaW4tdXNlciJ9.I7QJPtETU3FuIqQEMyq7T0yC7wsr7-mQSlcxr4qBl3JKqODOdp2t3wBgpE76rb8eHtFb7PdJa5-hmsyDPbtOwXoji2RKkt_ODBX0hpc-cS8OC4VFgTTnQVNTObLn1nP2sPTlAMJHkN5gza1W-lJanpXDwm-pzxUfVyoBn0a_AWwCc7AamhFrkSGHwEyoOFiN7-UuLAfWnjJtiiWWhugQbduzhvO78QGCWHGwewpSZ74qzfZgQftchXhJa_284_L9LhIFyh8qin5eoRZUi0ALz3wHsGD0L8hMXWqqSnHPswO3SkBRUMtt9CNCqDpH9WeNMNyut7m5MAg5I0nWMhggJQ

14.ingress安装

14.1写入配置文件,并执行

14.2启用后端,写入配置文件执行

14.3安装测试应用

14.4执行部署

14.5过滤查看ingress端口

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

关于

https://www.oiox.cn/

https://www.oiox.cn/index.php/start-page.html

CSDN、GitHub、知乎、开源中国、思否、掘金、简书、华为云、阿里云、腾讯云、哔哩哔哩、今日头条、新浪微博、个人博客

全网可搜《小陈运维》

文章主要发布于微信公众号:《Linux运维交流社区》

最后更新于