做ppt常用网站,wordpress托管建站,wordpress电影主题博客,网站规划建设方案农业绿化风格关闭交换空间
# 切换 超级管理员身份
# 查看交换空间
free -h
# 关闭交换空间
swapoff -a避免开启启动交换空间
# 注释swap开头的行
vim /etc/fstab关闭防火墙
# 关闭防火墙
# 因为K8S 是集群形式存在的 至少三台 一主二从 #xff08;一个master 两个node#xff09…关闭交换空间
# 切换 超级管理员身份
# 查看交换空间
free -h
# 关闭交换空间
swapoff -a避免开启启动交换空间
# 注释swap开头的行
vim /etc/fstab关闭防火墙
# 关闭防火墙
# 因为K8S 是集群形式存在的 至少三台 一主二从 一个master 两个node master 要给其他node节点发送指令 走的 gRPC协议
# 这个通信协议不能跨防火墙 故需要关闭
ufw disable配置 DNS
# 取消注释 配置 DNS
vim /etc/systemd/resolved.conf安装 Docker 、配置docker 镜像加速器
参考资料
安装kubernetes apt-get update apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
cat /etc/apt/sources.list.d/kubernetes.list EOF
# 写入软件源 注意目前使用的Ubuntu的版本是 noble但阿里云暂且不支持所以沿用16.04 d xenial
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-$(lsb_release -cs) main
EOF
apt-get update》》》安装k8s apt-get update apt-get install -y kubelet kubeadm kubectl 查看版本
锁定版本
防止k8s软件自动升级通过以下命令进行锁定版本。 sudo apt-mark hold kubelet kubeadm kubectl 如果要取消 sudo apt-mark unhold kubelet kubeadm kubectl 同步时间
同步时间之前 一定要先同步时区 dpkg-reconfigure tzdata 》》时间同步 # 安装ntpdate
apt-get install ntpdate
# 设置系统时间与网络时间同步cn.pool.ntp.org 是寻找离本机最近的时间服务器 同步时间
ntpdate cn.pool.ntp.org
# 将系统时间写入硬件时间
# 如果hwclock命令没则需要安装 apt install util-linux-extra
hwclock --systohc# 确认时间 看时间跟本地是否一致
date 修改主机名
》》修改cloud.cfg ,防止重启主机名还原 但测试下来 默认不还原
vim /etc/cloud/cloud.cfg
# 该配置默认是False修改为True 即可
# preserve——保护维护 持之以恒 保持
preserve_hostname:true》》重新一下让配置生效 然后关机
到此 可以把这个 Ubuntu系统 作为最基础的方便以后快速 新增 一个k8s 节点
基于上面的 克隆 一个 K8S 作为master、两个 节点 Node1、Node2
》》》修改IP、主机名
配置上面基本 一定 一定 一定 要重启 Kubernetes 安装集群
上面安装Kubernetes》》包含kubeadm、kubectl、kubetel》》 kubeadm 是kubernetes的集群安装工具能快速安装kubernetes集群安装kubernetes主要是安装它的各个镜像而kubeadm已经为我们集成好了运行kubenetes所需要的基本镜像。
安装程序Linux系统 一般安装在 /usr/local中
# cd /usr/local
# 创建 kubernetes 文件夹
# 进入到 kubernetes 文件夹
# 创建 cluster 文件夹
# 进入cluster文件夹
# 导出配置文件
# kubeadm config print init-defaults --kubeconfig ClusterConfiguration kubeadm.yml 》》修改 kubeadm.yml 文件 把谷歌的镜像仓库地址修改成阿里云的镜像仓库地址 imageRepository: registry.aliyuncs.com/google_containers 》》配置文件还要到加个Pod # 配置POD 所在网段为我们虚拟机不重叠的网段 容器跟容器间通信 可以不需要加双引号podSubnet: 10.244.0.0/16》》查看所需要的镜像 kubeadm config images list --config kubeadm.yml 》》拉取镜像 kubeadm config images pull --config kubeadm.yml 报错
ailed to pull image registry.aliyuncs.com/google_containers/kube-apiserver:v1.28.2: output: time2025-03-18T10:36:2008:00 levelfatal msgvalidate service connection: CRI v1 image API is not implemented for endpoint \unix:///var/run/containerd/containerd.sock\: rpc error: code Unimplemented desc unknown service runtime.v1.ImageService
, error: exit status 1
To see the stack trace of this error execute with --v5 or higher》》解决方案 vim /etc/containerd/config.toml 重启contained服务即可 systemctl restart containerd 在拉取就可以了 如果拉取不成功查看网络配置要重启、kubeadm.ym 的 配置 # 这步骤不需要的只是测试这个路径是否可以从拉取
docker pull registry.aliyuncs.com/google_containers/kube-apiserver:v1.28.2
docker pull registry.aliyuncs.com/google_containers/kube-controller-manager:v1.28.2
docker pull registry.aliyuncs.com/google_containers/kube-scheduler:v1.28.2
docker pull registry.aliyuncs.com/google_containers/kube-proxy:v1.28.2
docker pull registry.aliyuncs.com/google_containers/pause:3.9
docker pull registry.aliyuncs.com/google_containers/etcd:3.5.9-0
docker pull registry.aliyuncs.com/google_containers/coredns:v1.10.1
安装主节点 》》注意 注意 注意只主节点才需要 初始化的
# --experimental-upload-certs 可以在后续执行加入节点时自动分发证书文件
# tee kubeadm-init.log 输出日志的
# tee命令的功能是用于读取标准输入的数据将其内容转交到标准输出设备中同时保存成文件。
kubeadm init --configkubeadm.yml --experimental-upload-certs | tee kubeadm-init.log k8s 1.8版本之后就不支持这个 选项了
kubeadm init --configkubeadm.yml --upload-certs | tee kubeadm-init.log》》如果报错
[init] Using Kubernetes version: v1.28.2
[preflight] Running pre-flight checks
error execution phase preflight: [preflight] Some fatal errors occurred:[ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables does not exist
[preflight] If you know what you are doing, you can make a check non-fatal with --ignore-preflight-errors...
To see the stack trace of this error execute with --v5 or higher kubeadm init --configkubeadm.yml --upload-certs --ignore-preflight-errorsall | tee kubeadm-init.log 》》安装中会出现
[wait-control-plane] Waiting for the kubelet to boot up the control plane as static Pods from directory /etc/kubernetes/manifests. This can take up to 4m0s
[kubelet-check] Initial timeout of 40s passed. 》》解决问题《《
# 1.修改Containerd配置
cd /etc/containerd
# 生成默认配置文件Containerd的配置文件使用TOML格式然后打开修改。如果之前存在可以删除
containerd config default /etc/containerd/config.toml
# 打开修改
vim /etc/containerd/config.toml将 sandbox_image registry.k8s.io/pause:3.8
改为 sanbox_image registry.aliyuncs.com/google_containers/pause:3.9
SystemdCgroup false 改为 SystemdCgroup true保存退出重启Containerd sudo systemctl restart containerd # containerd 重启之后
kubeadm reset 重置一下
# 进入
cd /usr/local/kubernetes/cluster
# 在初始化一下
kubeadm init --configkubeadm.yml --upload-certs --ignore-preflight-errorsall | tee kubeadm-init.log成功 成功 # mkdir -p $HOME/.kube
# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
# 这个两个命令 要分别执行
kubectl get node 节点加入Master 如果报错
error execution phase preflight: [preflight] Some fatal errors occurred:[ERROR FileContent--proc-sys-net-bridge-bridge-nf-call-iptables]: /proc/sys/net/bridge/bridge-nf-call-iptables does not exist解决方法 echo 1 /proc/sys/net/bridge/bridge-nf-call-iptablesmodprobe br_netfilter集群网络配置
参考资料