【软件安装版本】【集群安装(是) 】
版本号 | 文档编写 | 文档审核 | 创建日期 | 修改日期 |
1.0 | 焦 | 焦 | 2022.4.10 | |
部署规划与架构
规划:(集群:网络规划,服务器规划)
三台树莓派,安装centos7,arm64版本,对应三台机器
192.168.0.100 k8smaster
192.168.0. 101 k8snode1
192.168.0. 102 k8snode2
架构(集群:拓扑图)
支撑业务
用于树莓派项目自动化运维的集群
运行环境安装
硬件
192.168.0.100 k8smaster: 树莓派4b+ 8g,
192.168.0.101 k8snode1: 树莓派4b+ 8g,
192.168.0. 102 k8snode2树莓派4b+ 8g
操作系统
CentOS-7-arrch64
依赖
docker-ce 18.09.9
k8s v1.16.0
环境配置
设置ssh,可ssh访问,安装
资源配置
192.168.0. 100 k8smaster: 8g内存,CPU 4核,120g硬盘
192.168.0. 101 k8snode1: 4g内存,CPU 2核,64g硬盘
192.168.0. 102 k8snode2: 4g内存,CPU 2核,64g硬盘
集群部署部署
安装包获取与安装
操作系统:http://centos.mirror.digitalpacific.com.au/8/BaseOS/aarch64/
安装教程:树莓派安装centos操作系统_水上冰石的博客-CSDN博客_树莓派能装centos吗
检测依赖环境是否就绪
查看docker和kubectl是否安装
Kubectl 已安装,先卸载
Kubectl get nodes
kubeadm reset -f rm -rf /etc/cni/net.d ipvsadm --clear modprobe -r ipip lsmod yum remove -y kubelet kubeadm kubectl rm -rf ~/.kube/ rm -rf /etc/kubernetes/ rm -rf /etc/systemd/system/kubelet.service.d rm -rf /etc/systemd/system/kubelet.service rm -rf /usr/bin/kube* rm -rf /etc/cni rm -rf /opt/cni rm -rf /var/lib/etcd rm -rf /var/etcd |
docker info,如果已安装,先卸载
[root@localhost etc]# systemctl stop docker [root@localhost etc]# sudo systemctl stop docker.socket [root@localhost etc]# yum list installed |grep docker [root@localhost etc]# rpm -qa |grep docker [root@localhost etc]# yum -y remove docker*.aarch64 [root@localhost etc]# rm -rf /var/lib/docker |
安装集群
3.1 安装docker
所有节点:
安装docker-ce 18.09.9(所有机器) ** 安装docker所需的工具** sudo yum install -y yum-utils device-mapper-persistent-data lvm2 配置阿里云的docker源 sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 指定安装这个版本的docker-ce docker-ce-cli-18.09.9-3.el7 这个也加上,不然会自动安装高版本的docker命令行。 sudo yum install -y docker-ce-18.09.9-3.el7 docker-ce-cli-18.09.9-3.el7 启动docker sudo systemctl enable docker && systemctl start docker ———————————————— 版权声明:本文为CSDN博主「shelutai」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/shelutai/article/details/122620084 |
3.2 安装k8s
环境配置
设置k8s环境准备条件(所有机器) 关闭防火墙 sudo systemctl disable firewalld && sudo systemctl stop firewalld 关闭selinux 临时禁用selinux sudo setenforce 0 永久关闭 修改/etc/sysconfig/selinux文件设置 sudo sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux sudo sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config 禁用交换分区 sudo swapoff -a 永久禁用,打开/etc/fstab注释掉swap那一行。 sudo sed -i 's/.*swap.*/#&/' /etc/fstab 修改内核参数 cat < /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sysctl --system |
主节点
安装k8s v1.16.0 注意,这个只在master管理节点 执行配置k8s阿里云源 cat < /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-aarch64/ enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg EOF 安装kubeadm、kubectl、kubelet yum install -y kubectl-1.16.0-0 kubeadm-1.16.0-0 kubelet-1.16.0-0 启动kubelet服务 systemctl enable kubelet && systemctl start kubelet |
3.3其他节点 安装
安装kubeadm、kubectl、kubelet yum install -y kubectl-1.16.0-0 kubeadm-1.16.0-0 kubelet-1.16.0-0 启动kubelet服务 systemctl enable kubelet && systemctl start kubelet |
3.4 主节点初始化
kubeadm init --apiserver-advertise-address=192.168.65.130 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.16.0 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16 --token-ttl 0 |
出现下面图为完成
3.5 主节点操作
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config |
3.6数据节点操作(从生成的日志里拷贝)
kubeadm join 192.168.65.130:6443 --token bzm6no.zazo7em8anknc1ms --discovery-token-ca-cert-hash xxxxxxx |
3.7 主节点操作
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml |
验证
主节点下操作
kubectl get nodes |
需要等待几分钟,才会ready
编辑
主节点修改标签
kubectl label no k8snode1 kubernetes.io/role=k8snode1 kubectl label no k8snode2 kubernetes.io/role=k8snode2 |
注意事项
常见问题与解决方式
1.1 targetcli-2.1.53-1.el7_9.noarch 是 targetcli-2.1.fb49-1.el7.noarch 的副本
1,2 安装冲突
Transaction check error: file /usr/bin/kubectl from install of kubectl-1.16.0-0.aarch64 conflicts with file from package kubernetes-client-1.5.2-0.7.git269f928.el7.centos.aarch64 错误概要 ------------- [root@k8smaster ~]# yum remove kubernetes-client-1.5.2-0.7.git269f928.el7.centos.aarch64 |
node节点:报错
kubeadm join 192.168.0.200:6443 --token kllwou.lhjtvabxo194fi2r --discovery-token-ca-cert-hash sha256:ae4e31db3519691137eba1fd566eb073f2007da215f76e6b612ed17522b9e26b [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 --v=5 or higher |
解决方案:参考:https://www.jianshu.com/p/4d2a84afebaa
yum install bridge-utils -y echo br_netfilter > /etc/modules-load.d/br_netfilter.conf modprobe br_netfilter |
重启电脑
附件
K8s切换源地址:阿里云开源镜像站资源目录
参考博客:
1. Docker彻底卸载:https://blog.csdn.net/qq_29726869/article/details/113353315
2. https://blog.csdn.net/shelutai/article/details/122620084
全部0条评论
快来发表一下你的评论吧 !