您当前的位置: 首页 >  docker

暂无认证

  • 4浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

轻量级Kubernetes之k3s:2:使用docker作为容器运行环境

发布时间:2019-11-26 19:52:57 ,浏览量:4

在这里插入图片描述 缺省安装的k3s使用的是containerd作为容器运行环境,如果希望使用Docker作为容器运行环境,只需要在安装时通过环境变量INSTALL_K3S_EXEC指定--docker即可。这篇文章具体介绍一下具体的安装与部署方法。

步骤1: 安装Docker

现在Docker官方已经提供了一键脚本,可以直接使用进行安装,安装命令如下所示:

curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh

安装日志如下所示:

[root@liumiaocn ~]# curl -fsSL https://get.docker.com -o get-docker.sh && sh get-docker.sh 
# Executing docker install script, commit: f45d7c11389849ff46a6b4d94e0dd1ffebca32c1
+ sh -c 'yum install -y -q yum-utils'
warning: /var/cache/yum/x86_64/7/base/packages/python-chardet-2.2.1-3.el7.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Public key for python-chardet-2.2.1-3.el7.noarch.rpm is not installed
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) "
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 Package    : centos-release-7-6.1810.2.el7.centos.x86_64 (@anaconda)
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
+ sh -c 'yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo'
Loaded plugins: fastestmirror
adding repo from: https://download.docker.com/linux/centos/docker-ce.repo
grabbing file https://download.docker.com/linux/centos/docker-ce.repo to /etc/yum.repos.d/docker-ce.repo
repo saved to /etc/yum.repos.d/docker-ce.repo
+ '[' stable '!=' stable ']'
+ sh -c 'yum makecache'
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.bit.edu.cn
 * extras: mirrors.neusoft.edu.cn
 * updates: mirror.bit.edu.cn
base                                                                                                             | 3.6 kB  00:00:00     
docker-ce-stable                                                                                                 | 3.5 kB  00:00:00     
extras                                                                                                           | 2.9 kB  00:00:00     
updates                                                                                                          | 2.9 kB  00:00:00     
(1/10): docker-ce-stable/x86_64/filelists_db                                                                     |  18 kB  00:00:01     
(2/10): docker-ce-stable/x86_64/updateinfo                                                                       |   55 B  00:00:01     
(3/10): base/7/x86_64/other_db                                                                                   | 2.6 MB  00:00:01     
(4/10): docker-ce-stable/x86_64/primary_db                                                                       |  37 kB  00:00:00     
(5/10): docker-ce-stable/x86_64/other_db                                                                         | 111 kB  00:00:00     
(6/10): extras/7/x86_64/other_db                                                                                 | 100 kB  00:00:00     
(7/10): base/7/x86_64/filelists_db                                                                               | 7.3 MB  00:00:02     
(8/10): extras/7/x86_64/filelists_db                                                                             | 207 kB  00:00:00     
(9/10): updates/7/x86_64/other_db                                                                                | 267 kB  00:00:00     
(10/10): updates/7/x86_64/filelists_db                                                                           | 2.7 MB  00:00:03     
Metadata Cache Created
+ '[' -n '' ']'
+ sh -c 'yum install -y -q docker-ce'
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
warning: /var/cache/yum/x86_64/7/docker-ce-stable/packages/docker-ce-19.03.5-3.el7.x86_64.rpm: Header V4 RSA/SHA512 Signature, key ID 621e9f35: NOKEY
Public key for docker-ce-19.03.5-3.el7.x86_64.rpm is not installed
Importing GPG key 0x621E9F35:
 Userid     : "Docker Release (CE rpm) "
 Fingerprint: 060a 61c5 1b55 8a7f 742b 77aa c52f eb6b 621e 9f35
 From       : https://download.docker.com/linux/centos/gpg
If you would like to use Docker as a non-root user, you should now consider
adding your user to the "docker" group with something like:

  sudo usermod -aG docker your-user

Remember that you will have to log out and back in for this to take effect!

WARNING: Adding a user to the "docker" group will grant the ability to run
         containers which can be used to obtain root privileges on the
         docker host.
         Refer to https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface
         for more information.
[root@liumiaocn ~]#

由于官方脚本中很贴心的加的有set -x,执行时的调试信息也进行了显示,可以看到就是yum仓库的设定然后进行安装的方式。另外由于此处是root用户,提示如果希望使用普通用户,然后将将此用户添加到docker组中,但是同时会将此用户赋予对宿主机进行一部分特权的风险(其实就是sbit的权限),这里就不再关注。上述安装完成之后,通过docker version即可确认到版本信息。

[root@liumiaocn ~]# docker version
Client: Docker Engine - Community
 Version:           19.03.5
 API version:       1.40
 Go version:        go1.12.12
 Git commit:        633a0ea
 Built:             Wed Nov 13 07:25:41 2019
 OS/Arch:           linux/amd64
 Experimental:      false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
[root@liumiaocn ~]#

启动Docker服务

[root@liumiaocn ~]# systemctl start docker
[root@liumiaocn ~]#

可以看到containerd和runc的版本信息

[root@liumiaocn ~]# docker version
Client: Docker Engine - Community
 Version:           19.03.5
 API version:       1.40
 Go version:        go1.12.12
 Git commit:        633a0ea
 Built:             Wed Nov 13 07:25:41 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.5
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.12
  Git commit:       633a0ea
  Built:            Wed Nov 13 07:24:18 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.10
  GitCommit:        b34a5c8af56e510852c35414db4c1f4fa6172339
 runc:
  Version:          1.0.0-rc8+dev
  GitCommit:        3e425f80a8c931f88e6d94a8c831b9d5aa481657
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683
[root@liumiaocn ~]#

虽然贴了这么多日志,但实际上到目前只有一个一键安装脚本的执行和一条systemctl语句的服务启动Docker的安装就完成了。

步骤2: 安装k3s

可以使用如下命令进行安装:

环境变量方式:curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC=“server --docker” sh -s -

或者

直接传参方式:curl -sfL https://get.k3s.io | sh -s - server --docker

这里使用直接传参方式,安装日志如下所示

[root@liumiaocn ~]# curl -sfL https://get.k3s.io | sh -s - server --docker
[INFO]  Finding latest release
[INFO]  Using v1.0.0 as release
[INFO]  Downloading hash https://github.com/rancher/k3s/releases/download/v1.0.0/sha256sum-amd64.txt
[INFO]  Downloading binary https://github.com/rancher/k3s/releases/download/v1.0.0/k3s
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  SELinux is enabled, setting permissions
which: no kubectl in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
which: no crictl in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Skipping /usr/local/bin/ctr symlink to k3s, command exists in PATH at /usr/bin/ctr
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s.service
[INFO]  systemd: Enabling k3s unit
Created symlink from /etc/systemd/system/multi-user.target.wants/k3s.service to /etc/systemd/system/k3s.service.
[INFO]  systemd: Starting k3s
[root@liumiaocn ~]#

确认容器运行环境

[root@liumiaocn ~]# kubectl get node -o wide
NAME        STATUS   ROLES    AGE   VERSION         INTERNAL-IP       EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION          CONTAINER-RUNTIME
liumiaocn   Ready    master   99s   v1.16.3-k3s.2   192.168.163.143CentOS Linux 7 (Core)   3.10.0-957.el7.x86_64   docker://19.3.5
[root@liumiaocn ~]#

可以看到此处提示的DONTAINER-RUNTIME(容器运行环境也称为容器运行时)为docker的19.3.5版本,正是前面刚刚安装的Docker版本。比较一下缺省安装方式下的k3s,可以看到缺省方式下k3s是直接使用containerd。

[root@liumiaocn ~]# kubectl get node -o wide
NAME        STATUS   ROLES    AGE     VERSION         INTERNAL-IP       EXTERNAL-IP   OS-IMAGE                KERNEL-VERSION          CONTAINER-RUNTIME
liumiaocn   Ready    master   3m38s   v1.16.3-k3s.2   192.168.163.143CentOS Linux 7 (Core)   3.10.0-957.el7.x86_64   containerd://1.3.0-k3s.4
[root@liumiaocn ~]#

详细可参看:https://liumiaocn.blog.csdn.net/article/details/103234225

总结

相较于kubernetes的每次release note中提到的简单的部署方式,k3s宣称的简单,在使用起来确实简单。使用docker作为容器运行环境,是否多余放在一边,实际中已经有很多在Docker基础上运行的系统,这种方式会减少对既存系统的影响。

关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

0.5445s