前文已经对docker和k8s的关系进行了总结,从个人角度来看,两者是相互依赖的,k8s和docker的关系有点像java和jdk,后者是前者运行的载体。纸上得来终觉浅,还是得实操一下才知道docker和k8s这两个小东西到底能帮助我们完成什么工作,以及如何完成工作。从hadoop时代开始,就已经有了想学框架必先准备环境的觉悟,因此本文将从环境准备开始,手把手教学,包教包会。
作为一个Docker的新手玩家,我也是刚刚买了个xx云的轻量服务器,我怀疑它之所以叫做轻量服务器,估计也是从k8s集群中分配出来的一个容器,然后笔者想要在这个容器里面学习容器的使用(听起来像套娃)。我选择的这个服务器本身的镜像其实已经安装了Docker,因此无需再次配置环境。Docker环境的搭建相对来说比较简单,只需要执行文件或者解压即可,下面给出各个系统下的安装文件下载链接。
指引链接:Docker Linux版
注意:Linux版需要选择对应的系统,笔者这里是centos系统,因此按照centos版本的按照指引即可(通过yum install),如果是使用的ubuntu系统,则通过apt-get的方式进行安装。
安装完成并配置好环境变量后,执行docker version
指令应该会出现类似以下图片的内容:
下载链接:Docker Windows版
下载链接:Docker 版
Windows版本下载得到的是一个.exe文件;Mac版本下载得到的是一个.dmg文件,Mac版需要根据自己笔记本的芯片类别进行下载(Intel或者Apple)。无论是Windows还是Mac版本,安装的Docker都是桌面版本,直接双击安装即可。 安装完成后就可以得到一个可视化界面——Docker Desktop。
注意: 我在Windows安装Docker的时候出现了WSL2需要手动安装升级的问题,可以参考手动安装WSL2的步骤,执行几条命令之后把机器重启一下就可以完成安装。
在Linux环境下是没有可视化界面的,需要执行docker login xxx.hub.com
命令登录到指定的镜像仓库中,如果不加上私有的镜像仓库地址,直接使用docker login
则会直接登录到官方的镜像仓库(需要在https://hub.docker.com/上注册账号),像这样:
在Windows或者Mac环境下,可以直接点击右上角的Sign in进行登录即可,登录成功后如下:
k8s在正式开发的过程中一般是集群环境,否则就失去了它本身的意义,但是在学习阶段部署单机版已经足够,其中Minikube是一个适合在本地构建用于学习和开发k8s的环境的软件。
Minikube官方网站有着详细的安装教程,在此对Linux版本的部署过程进行简单描述。
# 下载
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
# 安装
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
# 查看安装版本
kubectl version --client
根据我的情况,需要执行以下指令进行安装:
# 下载
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
# 安装
sudo install minikube-linux-amd64 /usr/local/bin/minikube
minikube start --force --driver=docker
kubectl get pods -A
对于Windows和Mac版,之前已经安装了Docker的桌面版,可以通过Docker界面进行一键安装(包括单节点k8s集群和kubectl工具):
确认安装后,就会进入starting状态,并且在每次打开Docker桌面时都会启动k8s单节点集群。左下角Docker和k8s的logo都处于绿色状态说明都处于runnig状态,环境已就绪。
最后的最后,我们可以通过Windows自带的PowerShell(让你在Windows系统上使用Linux指令的工具),通过和Linux同样的指令查看k8s的容器状态:
kubectl get pods -A
本文详细描述了在Linux和Windows环境下,Docker的部署以及k8s集群、k8s管理工具的安装。总结而言,在Linux环境下使用minikube进行k8s集群部署并单独安装了管理工具,而Windows环境下是在Docker的可视化界面中进行了一键安装。但是无论是哪种方式,k8s集群的部署方式都是单节点,使用的k8s管理工具是kubectl。万事俱备,接下来就可以在云的海洋里尽情学习啦~