Lazy loaded image
Linux
K8S 部署
00 分钟
2024-11-21
2024-12-1
type
status
date
slug
summary
tags
category
icon
password
comment
AI summary
 

准备环境

notion image
 
角色
IP地址
组件
master01
192.168.5.3
docker,kubectl,kubeadm,kubelet
node01
192.168.5.4
docker,kubectl,kubeadm,kubelet
node02
192.168.5.5
docker,kubectl,kubeadm,kubelet

环境初始化

检查操作系统的版本
 
主机名解析
为了方便集群节点间的直接调用,在这个配置一下主机名解析,企业中推荐使用内部DNS服务器
时间同步
kubernetes要求集群中的节点时间必须精确一直,这里使用chronyd服务从网络同步时间
企业中建议配置内部的会见同步服务器
禁用iptable和firewalld服务
kubernetes和docker 在运行的中会产生大量的iptables规则,为了不让系统规则跟它们混淆,直接关闭系统的规则
禁用selinux
selinux是linux系统下的一个安全服务,如果不关闭它,在安装集群中会产生各种各样的奇葩问题
禁用swap分区
swap分区指的是虚拟内存分区,它的作用是物理内存使用完,之后将磁盘空间虚拟成内存来使用,启用swap设备会对系统的性能产生非常负面的影响,因此kubernetes要求每个节点都要禁用swap设备,但是如果因为某些原因确实不能关闭swap分区,就需要在集群安装过程中通过明确的参数进行配置说明
修改linux的内核参数
配置ipvs功能
在Kubernetes中Service有两种带来模型,一种是基于iptables的,一种是基于ipvs的两者比较的话,ipvs的性能明显要高一些,但是如果要使用它,需要手动载入ipvs模块
 

安装docker

 

安装Kubernetes组件

 

准备集群镜像

 

Ubuntu 安装

安装 kubeadm、kubelet、kubectl 以下在所有节点上都要做
首先得保证源都是新的:
然后安装一些必要工具:
如果 /etc/apt/keyrings 目录不存在,先创建
下载 k8s 包仓库的公共签名密钥。解释一下,密钥中有一个v1.30,所有版本都是用的这个格式的密钥,即使你改为其他版本,下载的都是一个密钥,不影响,不过你想改也行:
 
添加 k8s 的apt仓库,使用其他版本的替换地址中的 v1.30 就行:
 
更新 apt 索引,并且安装,还要防止软件更新,三步:
启动 kubelet ,并且设置开机自启:
看看有没有安装成功:
 
2 初始化
 
apiserver-advertise-address 填主节点的IP地址 control-plane-endpoint ,还记得我们在 /etc/hosts 文件中配置的映射关系吗,填主节点的地址或者主机名 kubernetes-version 版本不多说 service-cidr 这是 Service 负载均衡的网络,就是你运行了一堆容器后有一个将它们统一对外暴露的地址,并且将对它们的请求统一收集并负载均衡的网络节点,得为它配置一个网段 pod-network-cidr 每个 Pod 所在的网段 cri-socket 指定容器化环境
 
 
查看错误
 
notion image
 
init 失败后需要重置再重新 init,执行:
 
子节点
notion image
如果不知道token,在主节点输入命令
此外,kubeadm join命令后面的--discovery-token-ca-cert-hash如果你也没记下来的话,可以从主节点的CA证书中提取哈希值,执行:
 
 
kubectl get componentstatus
notion image
上一篇
ubuntu 防火墙
下一篇
linux scp用法