| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> k8s-5:集群搭建方式及常见问题处理 -> 正文阅读 |
|
[系统运维]k8s-5:集群搭建方式及常见问题处理 |
? k8s集群搭建的方式分为三种: kubeadm:
minikube:
二进制包: ??? 在官网下载相关的组件的二进制包,上面的两个是工具,可以快速搭建集群,也就是相当于用程序脚本帮我们装好了集群,前两者属于自动部署,简化部署操作,自动部署屏蔽了很多细节,使得对各个模块感知很少,遇到问题很难排查,如果手动安装,对kubernetes理解也会更全面。 ????????以上类容来源于网络,我这边只用过kubeadm,其他的都是在网上查的,其实还有很多中方式,具体怎样我不清楚,有兴趣的自己尝试下,下面介绍下kubeadm的安装方式。 ??????? 前提条件: ??????????????? 1.机器:三台以上物理或者虚拟机,并且机器之间能互相访问。 ??????????????? 2.系统centos7以上,2g 2核 及以上。 ??????????????? 3.能访问外网,因为要拉镜像。 ??????????????? 4.禁用swap分区swapoff -a ;vi /etc/fstab 注释最后一行 带swap; ??????? 开始安装: ????????1.关闭防火墙 ????????????????systemctl stop firewalld ????????????????systemctl disable firewalld ??????? 2. 关闭selinux ????????????????sed -i 's/enforcing/disabled/' /etc/selinux/config? #永久 ????????????????setenforce 0? #临时 ????????3.?关闭swap(k8s禁止虚拟内存以提高性能) ????????????????sed -ri 's/.*swap.*/#&/' /etc/fstab #永久 ????????????????swapoff -a #临时 ????????????????这个在前提条件里说过了 ????????4.?在master添加hosts ????????????????cat >> /etc/hosts << EOF ????????????????192.168.191.144 k8s-master1 ????????????????192.168.191.145 k8s-node1 ????????????????192.168.191.146 k8s-node2 ????????????????EOF ????????????????改成自己的ip 所有的机器都添加 ????????5.设置网桥参数 ????????????????cat > /etc/sysctl.d/k8s.conf << EOF ????????????????net.bridge.bridge-nf-call-ip6tables = 1 ????????????????net.bridge.bridge-nf-call-iptables = 1 ????????????????EOF ????????????????sysctl --system? #生效 ????????????????6.时间同步 ????????????????????????yum install ntpdate -y ????????????????????????ntpdate time.windows.com ??????? 6.安装docker ??????????????? yum install wget -y wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo ??????????????? 或者yum install docker-ce-版本 安装指定版本,因为上面的安装会安装低版本的,但是k8s的版本可能比较高,这个可以自己查看下对应系统的版本和docker、k8s的对应版本,选择安装。 ??????????????? 设置docker镜像源 ??????????????? vi /etc/docker/daemon.json ????????????????"registry-mirrors": ["https://registry.docker-cn.com"] ????????????????systemctl enable docker.service ??????? 7.设置k8s阿里yum源????????? ????????????????cat > /etc/yum.repos.d/kubernetes.repo << EOF ????????????????????????[kubernetes] ????????????????????????name=Kubernetes ????????????????????????baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 ????????????????????????enabled=1 ????????????????????????gpgcheck=0 ????????????????????????repo_gpgcheck=0 ????????????????????????gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg ????????????????????????https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg ????????????????EOF ??????? 8.安装kubeadm,kubelet 和 kubectl ??????????????? yum install -y kubelet-1.19.4 kubeadm-1.19.4 kubectl-1.19.4 ??????????????? 这里的版本最好是与docker对应,不然容易出现版本问题。 ????????????????systemctl enable kubelet.service #开启kubelet服务 ??????? 以上每台机器上都是一样的执行 ??????? 9.初始化master节点 ????????????????kubeadm init --apiserver-advertise-address=192.168.191.144 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.19.4 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16 ??????????????? 这里192.168.191.144是我虚拟机的ip,关于参数解释可以看这个文章:kubadm部署k8s时service-cidr网络和pod-network-cidr的地址如何定义 - 小鹰展翅 - 博客园 ??????? ??????? 然后执行: ????????????????mkdir -p $HOME/.kube ????????????????sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config ????????????????sudo chown $(id -u):$(id -g) $HOME/.kube/config ??????? 10.查看节点: ????????????????kubectl get nodes ??????? 11.添加node ??????????????? 在第九步执行完init后,控制台会打出join的命令,拷贝出来,然后在node节点上执行即可,journalctl -f -u kubelet可查看当前运行的日志 ??????? 经常出现的问题: ????????????????systemctl daemon-reload ??????????????? 重启服务 ????????????????kubeadm reset 重建 ??????????????? 1.running with swap on is not supported. Please disable swap ??????????????? swap没有关闭:swapoff -a 临时关闭 ????????????????vi /etc/fstab 注释最后一行 ??????????????? 2.unknown container “/system.slice/kubelet.service” ????????????????????? vi /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf ??????????????????????? 有的可能是 ????????????????????????/etc/systemd/system/kubelet.service.d/10-kubeadm.conf 这个可能是系统版本不一样,找不到就用find找一下。 ??????????????????????? 添加:Environment="KUBELET_CGROUP_ARGS=–cgroup-driver=systemd –runtime-cgroups=/systemd/system.slice –kubelet-cgroups=/systemd/system.slice" ??????????????? 3.no networks found in /etc/cni/net.d ??????????????????????? 未安装网络: ??????????????????????? 1.可以先vi? /var/lib/kubelet/kubeadm-flags.env 把前面的cni去除 ??????????????????????? 2.也可以安装下载kube-flannel.yml,然后kubectl apply -f kube-flannel.yml ??????????????? 这些网上都能找到,不会就找度娘。 ???????????????? ? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 3:49:05- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |