Containerd

kubernetes集群安装指南:docker-ce部署

半世苍凉 提交于 2020-04-06 18:18:29
docker是POD基本运行环境,kubernetes默认以dockerd作为runtime运行引擎,在安装docker-ce前必须先升级内核到最新lts版,这是因为为了让docker-ce支持数据存储类型overlay2,这里将会以二进制文件方式部署在所有的worker节点上部署docker-ce。 1. 准备工作 #################### Variable parameter setting ###################### DOCKER_INSTALL_PATH=/data/apps/k8s/docker SOFTWARE=/root/software VERSION=18.09.6 PACKAGE=docker-${VERSION}.tgz DOWNLOAD_URL=https://download.docker.com/linux/static/stable/x86_64/$PACKAGE MIRRORS1=https://docker.mirrors.ustc.edu.cn MIRRORS2=https://registry-mirrors.mo9.com USER=docker 2. 安装docker 准备docker-ce安装环境 # 1.Uninstall the original docker installation package

[转帖]CRI & runc 介绍

杀马特。学长 韩版系。学妹 提交于 2020-04-06 10:06:57
CRI & runc 介绍 https: // blog.lecury.cn/2017/11/19/CRI&runc介绍/ 发表于 2017-11-19 | 0 | 阅读次数: 10 kubernetes CRI kubernetes是一个容器编排系统,可以便捷的部署容器,它同时支持Docker和Rocket两种容器类型。然而不管是Docker还是Rocket都需要通过内部、不太稳定的接口直接集成到kubelet的源码中,这样的集成过程需要开发者十分熟悉kubelet内部原理,同时维护起来也非常麻烦。在kubernetes1.5版本中,提供了一个清晰定义的抽象层消除了这些障碍,开发者可以专注于构建他们的容器运行时,这个抽象层称作Container Runtime Interface(CRI)接口,下面介绍一下CRI这个概念。 CRI CRI是一个插件接口,这个接口的引入使得kubelet不用重新编译的情况下管理多种容器类型。CRI主要由gRPC API和protocol buffers组成,它的架构图如下所示: kubelet与容器运行时(或者是CRI shim)之间的通信是借助gRPC框架通过unix套接字完成的,kubelet作为client,CRI shim作为server来实现。对于docker容器而言,dockershim是kubelet的CRI shim

史上最详细的Docker安装手册

こ雲淡風輕ζ 提交于 2020-04-05 17:01:13
概述:   这个安装手册我已经使用了将近2年的时间,一直在进行完善(可以用于生产级别)。使用了Centos 7系统。 一、Docker简单介绍   Docker是一个容器,使用的是Linux现有的技术,准确来说是基于Linux内核虚拟化技术发展而来,例如:网络模型之一网桥。底层核心技术是Namespace和cgroups。   Docker版本有企业版(收费)和社区版,我们一般使用的是社区版。社区版有三个发布版本,下面是对于三个发布版本的描述: 二、Docker的卸载和升级 注:如需要安装企业版的,请参考:https://docs.docker.com/install/linux/docker-ee/centos/ 2.1 卸载已安装的docker(如未安装,可跳过) ## 1 . 列出安装过的包 # yum list installed | grep docker ## 2 . 根据安装过的包进行卸载 # yum -y remove docker-ce- cli.x86_64 # yum -y remove docker- ce.x86_64 # yum -y remove containerd.io 2.2 更新docker(更新至最新版本) # yum -y update docker 三、Docker的安装 3.1 配置docker源(如已安装过docker

升级Kubernetes 1.18前,你不得不知的9件事

流过昼夜 提交于 2020-03-27 11:01:10
3 月,跳不动了?>>> 本文来自 Rancher Labs 昨天Kubernetes最新版本v1.18已经发布,其包含了38项功能增强,其中15项为稳定版功能、11项beta版功能以及12项alpha版功能。在本文中,我们将探索其中一些功能,希望能帮助你决定是否需要升级。那么,我们现在开始吧! 将Service Account Token作为通用身份验证方法 Kubernetes使用service account来验证集群内的服务。例如,如果你想要一个pod来管理其他Kubernetes资源,如Deployment或者Service,你可以与Service Account相关联并创建必要的角色和角色绑定。Kubernetes Service Account(KSA)发送JSON Web Tokens(JWT)到API server以验证它们。这使API server成为service account身份验证的唯一来源。 那么,如果实体需要针对集群外的其他服务进行身份验证,该怎么办?为了使用其KSA,外部身份验证器必须联系API server以验证请求。但是,API server不应公开访问。因为这使你可以使用其他身份验证系统进行验证,这会增加复杂性。即使第三方服务位于可以访问API server的集群中,也会增加负载。 于是在Kubernetes 1.18中增加了一个功能(

Ubuntu离线安装docker和NVIDIA-docker

耗尽温柔 提交于 2020-03-26 17:32:07
3 月,跳不动了?>>> 最近需要在公司内网服务器上搭建docker和gpu运行环境,公司内网不能连接互联网,无法通过在线方式安装docker引擎和nvidia-docker,因此只能离线安装,好在公司内网有Ubuntu的源镜像,基本的软件安装是没有问题的。 一、首先下载安装docker最新版 我的OS是Ubuntu16.04,版本代号为xenial ,因此下载地址是 https://download.docker.com/linux/ubuntu/dists/xenial/pool/stable/amd64/ 用外网电脑下载到U盘中,注意需要下载3个文件(可能版本号会因时间变化而变化): containerd.io_1.2.0-1_amd64.deb docker-ce-cli_18.09.1~3-0~ubuntu-xenial_amd64.deb docker-ce_18.09.1~3-0~ubuntu-xenial_amd64.deb 复制到服务器上,用下面的命令将三个包一起安装了。 dpkg -i containerd.io_1.2.0-1_amd64.deb docker-ce-cli_18.09.1~3-0~ubuntu-xenial_amd64.deb docker-ce_18.09.1~3-0~ubuntu-xenial_amd64.deb 若遇到缺少依赖包

“网红” WebAssembly 与 K8s 如何实现双剑合璧?

旧时模样 提交于 2020-03-11 11:25:06
作者 | 易立 阿里巴巴资深技术专家 导读 :WebAssembly 技术已经走出浏览器,让计算无处不在。本文利用 containerd 的扩展机制,可以为 WebAssembly 应用提供与其他容器应用一致的、抽象的、应用分发、交付和运维模型,可以在 Kubernetes 集群中进行统一调度和管理。 无处不在的 WebAssembly 如果评选 2019 年编程技术的“网红”,无论是前端圈还是后端圈,WebAssembly (WASM) 都绝对能够高票入选。然而,如果评选最被“低估”的技术,我觉得 WebAssembly 也可以轻松入围。 借用伏尔泰曾评价神圣罗马帝国的句式 “既不神圣,也不罗马,更非帝国”,我们也可以说WebAssembly “既不限于 Web,更不是 Assembly(汇编语言)”。 在 2019 年 12 月,万维网联盟 (World Wide Web Consortium - W3C) 宣布 WebAssembly 核心规范正式成为 Web 标准 , 这使得 WebAssembly 成为互联网上与 HTML, CSS, and JavaScript 并列的第四种官方语言,可以原生的运行在浏览器上。而更加重要的是,WebAssembly 作为一个安全的、可移植、高效率的虚拟机沙箱,可以在 Internet 的任何地方、任何平台(不同操作系统,不同 CPU

关于 Kubernetes 规划的灵魂 n 问

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-09 11:58:30
作者 | 易立 阿里云资深技术专家 导读 :Kubernetes 已经成为企业新一代云 IT 架构的重要基础设施,但是在企业部署和运维 Kubernetes 集群的过程中,依然充满了 复杂性和困扰 。 阿里云容器服务自从 2015 年上线后,目前 托管着上万的 K8s 集群 来支撑全球各地的客户。我们对客户在规划集群过程中经常会遇见的问题,进行一些分析解答。试图缓解大家的“ 选择恐惧症 ”。 如何选择 Worker 节点实例规格? 裸金属还是虚拟机? 在 Dimanti 2019 年的容器调查报告中,对专有云用户选择裸金属服务器来运行容器的主要原因进行了分析。 选择裸金属服务器的最主要原因( 超过 55% )是:传统虚拟化技术 I/O 损耗较大;对于 I/O 密集型应用,裸金属相比传统虚拟机有更好的性能表现; 此外近 36% 的客户认为:裸金属服务器可以降低成本 。大多数企业在初始阶段采用将容器运行在虚拟机的方案,但是当大规模生产部署的时候,客户希望直接运行在裸金属服务器上来减少虚拟化技术的 license 成本(这也常被戏称为“VMWare 税”); 还有近 30% 的客户因为在物理机上部署有更少的额外资源开销 (如虚拟化管理、虚拟机操作系统等);还有近 24% 的客户选择的原因是:可以有更高的部署密度,从而降低基础设施成本; 超过 28% 的客户认为

OCI 完成 TOB 选举,阿里巴巴工程师入选全球 9 人名单

a 夏天 提交于 2020-03-06 11:26:21
2 月 12 日, OCI(Open Container Initiative) 完成了新的一轮 TOB(Technical Oversight Board) 成员选举。阿里巴巴高级开发工程师 傅伟(花名:聿歌)获得 TOB Member 席位,任期为 2 年,是 9 位 TOB 中唯一一位来自中国公司的华人工程师,在成为 OCI 组织的 TOB 之前,傅伟一直积极参与云原生开源项目共建,同时也是 CNCF/containerd 项目的 Maintainer,未来他将继续参与容器标准的演进建设。 OCI(Open Container Initiative)组织于 2015 年 6 月成立,OCI 组织提供了一个开放技术社区,旨在帮助容器领域的开发者能更好地共建一个中立开放的容器运行时标准。而 TOB Member 的责任是协助治理这一开放技术社区,以及 OCI 项目引进管理。目前 OCI 共设立了 9 个 TOB Member 席位,他们分别来自 Docker、RedHat、IBM、Google、AWS、Microsoft 和 SUSE。 3 月 3 日,傅伟首次参加了 2020 年 OCI TOB 第一次会议,讨论提议 ORAS(OCI Registry as Storage) 和 umoci 成为 OCI 子项目等事宜。 在云原生时代,容器和镜像仓库已经成为

高性能容器伺服器-containerd简介

自闭症网瘾萝莉.ら 提交于 2020-02-28 11:52:39
containerd是一个高性能的容器(container)伺服系统(查看 源码 ),部分功能与Docker很像,相当于Docker Daemon模式和更新版的DockerD。 containerd采用并行启动技术,可以每秒启动上百个容器实例。containerd提供命令行和REST服务接口,里面对容器真正的管理是通过containerd-shim进程来完成 。 与Docker Engine的一锅烩模式不同的是,containerd并不管理容器的镜像,主要支持 OCI( https://www.opencontainers.org/ )开放容器标准 的镜像,通过runc来启动。 OCI镜像可以通过Docker镜像转换而来(参见: https://github.com/docker/containerd/blob/master/docs/bundle.md )。 containerd与大家熟知的Docker可谓相生相克,最新发展出的关系如下图所示。 Docker从1.11开始,已经支持containerd和runc来运行容器。在DockerD服务启动时自动启动了containerd作为后台进程服务(可以通过ps aux | grep docker查看)。 更详细的中文介绍参考: http://dockone.io/article/1327 。 下面是 containerd的 官方介绍

Docker容器快速开始-基础概念和安装

非 Y 不嫁゛ 提交于 2020-02-28 09:39:19
Docker Docker是一个为开发者和运维工程师(系统管理员)以容器的方式构建,分享和运行应用的平台.使用容器进行应用部署的方式,我们成为容器化. 容器化应用具有一下特性,使得容器化日益流行: 灵活: 再复杂的应用都可以进行容器化. 轻量: 容器使用使用和共享主机的内核,在系统资源的利用比虚拟机更加高效. 可移植: 容器可以本地构建,部署到云上,运行在任何地方. 松耦合: 容器是高度自封装的,可以在不影响其他容器的情况下替换和升级容器. 可扩展: 可以在整个数据中心里增加和自动分发容器副本. 安全: 容器约束和隔离应用进程,而无需用户进行任何配置. 镜像和容器 其实,容器就是运行的进程,附带一些封装的特性,使其与主机上和其他容器的进程隔离.每个容器都只访问它自己私有的文件系统,这是容器隔离很重要的一方面.而Docker镜像就提供了这个文件系统,一个镜像包含运行该应用所有需求 - 代码或者二进制文件,运行时,依赖库,以及其他需要的文件系统对象 通过与虚拟机对比,虚拟机(VM)通过一个虚拟机管理(Hypervisor)运行了完整的操作系统来访问主机资源.通常虚拟机会产生大量的开销,超过了应用本身所需要的开销. 容器编排 容器化过程的可移植性和可重复性意味着我们有机会跨云和数据中心移动和扩展容器化的应用程序,容器有效地保证应用程序可以在任何地方以相同的方式运行