首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

二进制安装Kubernetes(k8s)v1.26.1 IPv4/IPv6双栈 可脱离互联网

二进制安装Kubernetes(k8s) v1.26.1 IPv4/IPv6双栈 可脱离互联网

介绍

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

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

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

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

若不要IPv6 ,不给网卡配置IPv6即可,不要对IPv6相关配置删除或操作,否则会出问题。

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

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

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

1.环境

网段

物理主机:192.168.1.0/24

service:10.96.0.0/12

pod:172.16.0.0/12

安装包已经整理好:https://github.com/cby-chen/Kubernetes/releases/download/v1.26.1/kubernetes-v1.26.1.tar

1.1.k8s基础系统环境配置

1.2.配置IP

1.3.设置主机名

1.4.配置yum源

1.5.安装一些必备工具

1.5.1 下载离线所需文件

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

CentOS7

CentOS8

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客户端连接的运行时位置

2.2 安装docker作为Runtime (暂不支持)

v1.26.0 暂时不支持docker方式

2.2.1 安装docker

2.2.2 安装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节点操作

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

3.2.2master01节点生成k8s证书

3.2.3生成apiserver聚合证书

3.2.4生成controller-manage的证书

在《5.高可用配置》选择使用那种高可用方案

若使用 haproxy、keepalived 那么为

若使用 nginx方案,那么为

3.2.5创建kube-proxy证书

在《5.高可用配置》选择使用那种高可用方案

若使用 haproxy、keepalived 那么为

若使用 nginx方案,那么为

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.高可用配置(在Master服务器上操作)

注意* 5.1.1 和5.1.2 二选一即可

选择使用那种高可用方案

在《3.2.生成k8s相关证书》

若使用 nginx方案,那么为

若使用 haproxy、keepalived 那么为

5.1 NGINX高可用方案 (推荐)

5.1.1自己手动编译(推荐)

在所有节点执行

5.1.2使用我编译好的

5.1.3写入启动配置

在所有主机上执行

5.2 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组件配置(区别于第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 和 8.2.2 需要和 上方 2.1 和 2.2 对应起来

8.2.1当使用docker作为Runtime(暂不支持)

v1.26.0 暂时不支持docker方式

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

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

8.2.4启动kubelet

8.2.5查看集群

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查看容器状态

9.2 安装cilium

9.2.1 安装helm

9.2.2 安装cilium

9.2.3 查看

9.2.4 下载专属监控面板

9.2.5 下载部署测试用例

9.2.6 查看pod

9.2.7 修改为NodePort

9.2.8 查看端口

9.2.9 访问

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更改dashboard的svc为NodePort,如果已是请忽略

13.2查看端口号

13.3创建token

13.3登录dashboard

https://3.7.191.61:30034/

14.ingress安装

14.1执行部署

14.2过滤查看ingress端口

15.IPv6测试

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

附录

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230207A08YVY00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券