如何部署一个Kubernetes集群
原文链接:https://mp.weixin.qq.com/s/MFSvDWtue4YruFV3jyLQVw 在本篇文章中我将以在Mac笔记本中安装两台Ubantu系统的方式,演示如何部署一套具备一个控制节点(Master)和一个计算节点(Worker)的Kubernetes学习集群。 1、系统环境准备 要安装部署Kubernetes集群,首先需要准备机器,最直接的办法可以到公有云(如阿里云等)申请几台虚拟机。而如果条件允许,拿几台本地物理服务器来组建集群自然是最好不过了。但是这些机器需要满足以下几个条件: 要求64位Linux操作系统,且内核版本要求3.10及以上,能满足安装Docker项目所需的要求; 机器之间要保持网络互通,这是未来容器之间网络互通的前提条件; 要有外网访问权限,因为部署的过程中需要拉取相应的镜像,要求能够访问到gcr.io、quay.io这两个dockerregistry,因为有小部分镜像需要从这里拉取; 单机可用资源建议2核CPU、8G内存或以上,如果小一点也可以但是能调度的Pod数量就比较有限了; 磁盘空间要求在30GB以上,主要用于存储Docker镜像及相关日志文件; 在本次实验中由于条件有限,我是在Mac笔记本上通过虚拟软件准备了两台虚拟机,其具体配置如下: 2核CPU、2GB内存,30GB的磁盘空间; Unbantu 20.04 LTS的Sever版本,其Linux内核为5.4.0; 内网互通,外网访问权限不受控制; 2、Kubeadm一键部署工具简介 作为典型的分布式系统,Kubernetes的部署一直是困扰初学者进入Kubernetes世界的一大障碍。在发布早期Kubernetes的部署主要依赖于社区维护的各种脚本,但这其中会涉及二进制编译、配置文件以及kube-apiserver授权配置文件等诸多运维工作。目前各大云服务厂商常用的Kubernetes部署方式是使用SaltStack、Ansible等运维工具自动化地执行这些繁琐的步骤,但即使这样,这个部署的过程对于初学者来说依然是非常繁琐的。 正是基于这样的痛点,在志愿者的推动下Kubernetes社区终于发起了kubeadm这一独立的一键部署工具,使用kubeadm我们可以通过几条简单的指令来快速地部署一个kubernetes集群。后面的内容,就将具体演示如何使用kubeadm来部署一个Kubernetes集群。 3、安装Kubeadm及Docker环境 在准备的两台虚拟机中,分别安装Kubeadm部署工具及Docker环境。步骤如下: 1)、编辑操作系统安装源配置文件,添加kubernetes镜像源,命令如下: #添加Kubernetes官方镜像源apt-key root@kubenetesnode01:~#curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - #添加Kubernetes官方镜像源地址 root@kubernetesnode01:~# vim /etc/apt/sources.list #add kubernetes source deb http://apt.kubernetes.io/ kubernetes-xenial main 上述操作添加的是kubernetes的官方镜像源,如果apt.kubernetes.io因为网络原因访问不到,也可以换成国内Ubantu镜像源,如阿里云镜像源地址: #添加阿里云Kubernetes镜像源apt-key root@kubenetesnode01:~# curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - #添加阿里云Kubernetes镜像源地址 root@kubernetesnode01:~# vim /etc/apt/sources.list deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main 2)、镜像源添加后更新apt资源列表,命令如下: root@kubernetesnode01:~# apt-get update Hit:1 http://cn.archive.ubuntu.com/ubuntu focal InRelease Hit:2 http://cn.archive.ubuntu.com/ubuntu focal-updates InRelease Hit:3 http://cn.archive.ubuntu.com/ubuntu focal-backports InRelease Hit:4 http://cn.archive.ubuntu.com/ubuntu focal-security InRelease Get:5 https://packages.cloud.google.com/apt kubernetes-xenial InRelease [8,993 B] Get:6 https://packages.cloud.google.com/apt kubernetes-xenial/main amd64 Packages [37.7 kB] Fetched 46.7 kB in 7s (6,586 B/s) Reading package lists... Done 3)、完成上述2步后就可以通过apt-get命令安装kubeadm了,如下: root@kubernetesnode01:~# apt-get install -y docker.io kubeadm Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: bridge-utils cgroupfs-mount conntrack containerd cri-tools dns-root-data dnsmasq-base ebtables kubectl kubelet kubernetes-cni libidn11 pigz runc socat ubuntu-fan .... 这里直接使用Ubantu的docker.io安装源。在上述安装kubeadm的过程中,kubeadm和kubelet、kubectl、kubernetes-cni这几个kubernetes核心组件的二进制文件都会被自动安装好。 4)、Docker服务启动及限制修改 完成上述步骤侧操作后,系统中会自动安装Docker引擎,但是在具体运行kubernetes部署之前需要对Docker的配置信息进行一些调整。 首先,编辑系统/etc/default/grub文件,在配置项GRUB_CMDLINE_LINUX中添加如下参数: GRUB_CMDLINE_LINUX=" cgroup_enable=memory swapaccount=1" 完成编辑后保存执行如下命令,并重启服务器,命令如下: root@kubernetesnode01:/opt/kubernetes-config# update-grub root@kubernetesnode01:/opt/kubernetes-config# reboot 上述修改主要解决的是可能出现的“docker警告WARNING: No swap limit support”问题。 其次,编辑创建/etc/docker/daemon.json文件,添加如下内容: { "exec-opts": ["native.cgroupdriver=systemd"] } 完成保存后执行重启Docker命令,如下: root@kubernetesnode01:/opt/kubernetes-config# systemctl restart docker 此时可以查看Docker的Cgroup信息,如下: root@kubernetesnode01:/opt/kubernetes-config# docker info | grep Cgroup Cgroup Driver: systemd (编辑:应用网_阳江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |