官方 Ubuntu 存储库中提供的 Docker 安装软件包可能不是最新版本。
Ubuntu 官方的版本库中并不一定是 Docker 最新的安装包,为了保证是最新版,我们从 Docker 官方库来安装。
首先,更新现有的软件包列表:
$ sudo apt update
注意:如果无法更新,可能是你的软件源指向是国外的服务器,很可能已经被墙。所有首次更新请打开 VPN。
接下来,安装一些必备软件包,让 apt 通过 HTTPS 使用软件包。
sudo apt install apt-transport-https ca-certificates curl software-properties-common
然后将官方 Docker 版本库的 GPG 密钥添加到系统中:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
执行后显示
ok
将 Docker 版本库添加到APT源:
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
接下来,我们用新添加的 Docker 软件包来进行升级更新。
sudo apt update
确保要从 Docker 版本库,而不是默认的 Ubuntu 版本库进行安装:
apt-cache policy docker-ce
执行后会看到这样的结果( Docker 的版本号可能略有不同)
docker-ce: Installed: (none) Candidate: 5:19.03.12~3-0~ubuntu-focal Version table: 5:19.03.12~3-0~ubuntu-focal 500 500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages 5:19.03.11~3-0~ubuntu-focal 500 500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages 5:19.03.10~3-0~ubuntu-focal 500 500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages 5:19.03.9~3-0~ubuntu-focal 500 500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
请注意,到目前这一步docker-ce还未安装,但根据上一步中的列表,可以看到 docker-ce 来自 Docker 官方版本库。
最后,安装 Docker :
sudo apt install docker-ce
现在 Docker 已经安装完毕。我们启动守护程序。检查 Docker 是否正在运行:
sudo systemctl status docker
执行结果类似以下内容,说明该服务处于活动状态并且正在运行:
● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2020-07-08 02:55:20 UTC; 5min ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 4287 (dockerd) Tasks: 8 Memory: 36.4M CGroup: /system.slice/docker.service └─4287 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
安装完成之后需要进行一些配置,包括 切换docker下载源为国内镜像站 以及 修改cgroups。
这个cgroups是啥呢,你可以把它理解成一个进程隔离工具,docker就是用它来实现容器的隔离的。docker 默认使用的是cgroupfs,而 k8s 也用到了一个进程隔离工具systemd,如果使用两个隔离组的话可能会引起异常,所以我们要把 docker 的也改成systemd。
这两者都是在/etc/docker/daemon.json里修改的,所以我们一起配置了就好了,首先执行下述命令编辑daemon.json:
sudo vi /etc/docker/daemon.json
打开后输入以下内容:
{ "registry-mirrors": [ "https://dockerhub.azk8s.cn", "https://reg-mirror.qiniu.com", "https://quay-mirror.qiniu.com" ], "exec-opts": [ "native.cgroupdriver=systemd" ] }
然后:wq保存后重启 docker:
sudo systemctl daemon-reload sudo systemctl restart docker
然后就可以通过docker info | grep Cgroup来查看修改后的 docker cgroup 状态,发现变为systemd即为修改成功。
安装完了 docker 就可以下载 k8s 的三个主要组件kubelet、kubeadm以及kubectl了。这一步两台主机都需要进行安装。先来简单介绍一下这三者:
kubelet: k8s 的核心服务
kubeadm: 这个是用于快速安装 k8s 的一个集成工具,我们在master1和worker1上的 k8s 部署都将使用它来完成。
kubectl: k8s 的命令行工具,部署完成之后后续的操作都要用它来执行
其实这三个的下载很简单,直接用apt-get就好了,但是因为某些原因,它们的下载地址不存在了。所以我们需要用国内的镜像站来下载,也很简单,依次执行下面五条命令即可:
使得 apt 支持 ssl 传输
apt-get update && apt-get install -y apt-transport-https
下载 gpg 密钥
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
添加 k8s 镜像源
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main EOF
更新源列表
apt-get update
下载 kubectl,kubeadm以及 kubelet
apt-get install -y kubelet kubeadm kubectl
原文链接:https://blog.csdn.net/qq_34567537/article/details/127551257