type
status
date
slug
summary
tags
category
icon
password
comment
AI summary
准备环境
角色 | 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 指定容器化环境
查看错误
init 失败后需要重置再重新 init,执行:
子节点
如果不知道token,在主节点输入命令
此外,
kubeadm join
命令后面的--discovery-token-ca-cert-hash
如果你也没记下来的话,可以从主节点的CA证书中提取哈希值,执行:
kubectl get componentstatus
- 作者:Anthony
- 链接:https://github.com/lazyBoy1998/article/145dd70c-e921-8010-94d0-ee61c1ac7985
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。