Ubuntu(arm)部署k8s(kubernetes)集群

前言:

        k8s集群是目前高端运维需要掌握的必备技能之一,工作中你可以不用k8s,但是简历你不能没有k8s;面试造火箭,工作打螺丝;话不多说,直接上操作,这里就不过多阐述k8s的原理和作用了。

部署前工作

机器设备:MacBook Pro m1pro

虚拟系统:Ubuntu 22.04.3 LTS

Docker: v24.0.7 - 直接安装最新的即可
k8s: v1.26.2 - 根据最近两年的新版安装,旧版可能会存在很多bug

虚拟配置:

        稳妥起见,k8s至少需要2个CPU,4G运行

IP CPU 内存
192.168.10.91 2 4G
192.168.10.91 2 4G
192.168.10.91 2 4G

# 配置ssh传输无密码传输,方便文件之间的传输

root@k8s-master-90:~# ssh-keygen -t rsa
root@k8s-master-91:~# ssh-keygen -t rsa
root@k8s-master-92:~# ssh-keygen -t rsa

root@k8s-master-90:~# ssh-copy-id 192.168.10.91
root@k8s-master-90:~# ssh-copy-id 192.168.10.92

root@k8s-master-91:~# ssh-copy-id 192.168.10.90
root@k8s-master-91:~# ssh-copy-id 192.168.10.92

root@k8s-master-92:~# ssh-copy-id 192.168.10.90
root@k8s-master-90:~# ssh-copy-id 192.168.10.91

系统上的基本配置

# 以下操作,都在每台主机上配置

1. 填写hosts域名映射

root@k8s-master-90:~# vim /etc/hosts

19.168.10.90   k8s-master-90
19.168.10.91   k8s-work-91
19.168.10.91   k8s-work-92

2. 关闭防火墙

root@k8s-master-90:~# systemctl status ufw.service
root@k8s-master-91:~# systemctl stop ufw.service
root@k8s-master-92:~# systemctl disable ufw.service

3、临时关闭关闭swap

root@k8s-master-90:~# systemctl status swap.target
root@k8s-master-91:~# systemctl stop swap.target
root@k8s-master-92:~# systemctl disable swap.target

4. 文件系统的静态信息的文件中/etc/fstab,注释掉swap

root@k8s-master-90:~# vim /etc/fstab
#/swap.img      none    swap    sw      0       0

5、修改内核,开启ipv4转发功能

root@k8s-master-90:~# tee /etc/sysctl.d/k8s.conf <<-'EOF'
net.ipv4.ip_forward = 1
EOF

6、查看是否开启转发功能成功,有输出即可

root@k8s-master-90:~# sysctl -p /etc/sysctl.d/k8s.conf 

7、安装ipvsadm

root@k8s-master-90:~#  apt-get install -y ipvsadm
root@k8s-master-90:~#  cat > /etc/modules-load.d/ipvs.conf << EOF
ip_vs_dh
ip_vs_fo
ip_vs_ftp 
ip_vs
ip_vs_lblc 
ip vs_lblcr 
ip_vs_lc
ip_vs_mh
ip_vs_nq
ip_vs_ovf
ip_vs_pe_sip 
ip_vs_rr
ip_vs_sed 
ip_vs_sh
ip_vs_wlc
ip_vs_wrr
nf_conntrack
EOF

8、开机自动systemd-modules-load.service

root@k8s-master-90:~#  systemctl enable --now systemd-modules-load.service

9、重启查看是否安装ipvsadm成功

root@k8s-master-90:~#  lsmod | grep ip_vs
root@k8s-mas

部署 Kubernetes 集群在基于 ARM 架构的 Ubuntu 系统上通常需要以下几个步骤。这里提供一个简化的概述,并给出关键步骤。请注意,这只是一个通用指南,实际操作时可能需要根据您的特定需求和环境调整: 1. **安装准备**: - 更新系统: ``` sudo apt-get update && sudo apt-get upgrade ``` -transport-https ca-certificates curl gnupg lsb-release ``` 2. **添加Kubernetes GPG密钥**: ``` curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/kubernetes-archive-keyring.gpg ``` 3. **配置APT源**: ``` echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] http://apt.kubernetes.io $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/kubernetes.list > /dev/null ``` 4. **更新Apt缓存并安装kubectl**: ``` sudo apt-get update sudo apt-get install kubectl ``` 5. **检查集群是否已连接**: ``` kubectl cluster-info ``` 6. **安装Kubeadm、Kubelet和CNI** (例如 Calico 或 Canal): ``` sudo apt-get install kubelet kubeadm kube-proxy calico-node ``` 如果使用其他CNI,请替换相应的包名。 7. **初始化主节点(master node)**: ``` sudo kubeadm init --pod-network-cidr=10.244.0.0/16 ``` 按照提示完成初始化过程。 8. **设置管理员权限**: ```bash mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config chmod 644 $HOME/.kube/config ``` 9. **配置工作节点(worker nodes)**: - 加入到集群: ``` sudo kubeadm join <master-node-ip>:<port> --token <token> --discovery-token-ca-cert-hash <hash> ``` - 对每个工作节点重复此步骤。 10. **验证集群状态**: ``` kubectl get nodes ``` 11. **安装和配置网络插件(如有需要)**: 根据选择的网络方案(如Calico、Flannel等),按照官方文档进行配置。 **注意事项:** - 这是一个基础示例,生产环境中可能还需要考虑高可用性、安全性和持久化存储等问题。 - 部署过程中可能会有各种依赖冲突,确保先了解系统的兼容性和版本要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值