alpine极简快速安装k8s#kubernetes
alpine3.191、Master主机:2核以上CPU、4G以上内存、20G硬盘 2、Node主机:2核以上CPU3、节点之中不可以有重复的主机名、MAC 地址或 product_uuid4、为了保证 kubelet 正常工作,必须禁用交换分区glibc。
·
一 、前期准备
操作系统:
alpine3.19
Kubernetes : v1.29.2
docker:25.0.3
containerd:1.7.13
准备工作
1、Master主机:2核以上CPU、4G以上内存、20G硬盘 2、Node主机:2核以上CPU
3、节点之中不可以有重复的主机名、MAC 地址或 product_uuid
4、为了保证 kubelet 正常工作,必须禁用交换分区
注意:k8s官网说明是基于( Debian、Ubuntu、Fedora、CentOS 等)上是合理的, 但对于不包含默认 glibc
的自定义和轻量级发行版(如 Alpine Linux)
二、前期安装配置
更换镜像源
cat >> /etc/apk/repositories <<"EOF"
http://mirrors.aliyun.com/alpine/v3.19/main
http://mirrors.aliyun.com/alpine/v3.19/community
http://mirrors.aliyun.com/alpine/edge/main
http://mirrors.aliyun.com/alpine/edge/community
http://mirrors.aliyun.com/alpine/edge/testing
EOF
配置主机名
apk update
apk add alpine-conf #系统配置工具包
nano /etc/hostname
#更改后 重启
reboot
加载配置
echo "br_netfilter" > /etc/modules-load.d/k8s.conf
modprobe br_netfilter
临时加载,改为写入文件,防止重启失效
echo 1 > /proc/sys/net/ipv4/ip_forward
三、安装软件
apk add cni-plugin-flannel&&
apk add flannel&&
apk add flannel-contrib-cni&&
apk add cni-plugins&&
apk add kubelet&&
apk add kubeadm&&
apk add kubectl&&
apk add uuidgen&&
apk add nfs-utils&&
apk add containerd&&
# 把管理工具 ctr 安装上
apk add containerd-ctr
关闭swap
swapoff -a
sed -i "s|.*swap.*|#&|" /etc/fstab
修改文件
mount --make-rshared /
cat > /etc/local.d/sharemetrics.start <<"EOF"
#!/bin/sh
mount --make-rshared /
EOF
#加权限
chmod +x /etc/local.d/sharemetrics.start
rc-update add local
#修复 id 错误消息
uuidgen > /etc/machine-id
#启动服务
rc-update add containerd
rc-update add kubelet
rc-service containerd start
#配置kernel
cat >> /etc/sysctl.conf <<"EOF"
net.bridge.bridge-nf-call-iptables=1
net.ipv4.ip_forward= 1
EOF
#设置网络工作
sysctl -p
修改 containerd 配置
查看当前初始化使用的镜像信息
kubeadm config images list
--
registry.k8s.io/kube-apiserver:v1.29.2
registry.k8s.io/kube-controller-manager:v1.29.2
registry.k8s.io/kube-scheduler:v1.29.2
registry.k8s.io/kube-proxy:v1.29.2
registry.k8s.io/coredns/coredns:v1.11.1
registry.k8s.io/pause:3.9
registry.k8s.io/etcd:3.5.10-0
修改sandbox /etc/containerd/config.toml
nano /etc/containerd/config.toml
#搜索sandbox_image 更改为:
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.9"
#改完保存退出 重启containerd
rc-service containerd restart
修改本地hosts文件
nano /etc/hosts
--
ip k8smarster
四、拉取镜像
kubeadm config images pull --image-repository registry.aliyuncs.com/google_containers
初始化节点
kubeadm init \
--node-name=$(hostname) \ #节点名
--apiserver-advertise-address=172.16.124.181 \#IP
--image-repository registry.aliyuncs.com/google_containers \#加速源
--pod-network-cidr=10.244.0.0/16
配置环境变量
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=/etc/kubernetes/admin.conf
#查看Token
kubeadm token list
同步时间(可选)
apk add chrony
chronyd
ntpd -d -q -n -p ntp3.aliyun.com
五、部署网络插件
部署flannel网络
#拉取配置文件
wget -c https://mirror.ghproxy.com/https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
#执行配置文件
kubectl apply -f kube-flannel.yml
查看pod配置文件的状态
kubectl get pods -A
查看节点
kubectl get nodes
pod可能存在污点,查看节点是否有污点
kubectl describe nodes 节点名 |grep Taints
#删除污点
kubectl taint node 节点名 污点名-
等都运行完成 测试外部网络能否请求
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
#查看端口
kubectl get pod,svc -A
外部请求 http://ip:端口
表示网络插件部署完成
六、配置node节点
编辑 /etc/sysctl.conf 文件
#在文件末尾添加或修改以下行
net.ipv4.ip_forward = 1
#应用新的内核参数配置
sysctl -p /etc/sysctl.conf
Node节点执行(根据初始化返回的token执行)
#根据自己主节点初始化返回的信息再给从节点执行
kubeadm join 172.16.124.181:6443 --token iccha2.zkkh61v9qpbhyh3y
--discovery-token-ca-cert-hash sha256:bfb1ba73a182d289b12e81bbc1dd315f34f0b1f599c5e242872bffce4566d5b6
主节点查看 node
至此配置完成!
更多推荐
已为社区贡献2条内容
所有评论(0)