如何部署一个Kubernetes集群

在上一篇文章《Kubernetes和Docker的关系是什么?》和大家分享了关于Kubernetes的基本系统架构以及关于容器编排相关的概念,并总体阐述Kubernetes与Docker之间的基本关系。而要学习Kubernetes容器编排技术,首先要解决的就是学习环境问题,而由于Kubernetes本身具有一定的复杂性,且需要较大的系统资源环境,所以对于刚入门的读者来说如何快速部署一套Kubernetes学习环境就成了一件棘手的事情。

在本篇文章中我将以在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引擎,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值