从零开始攻略k8s(二):从虚拟机到容器

2021-05-13
阅读 1 分钟
2.1k
与虚拟机比较,容器更加轻量级,因为虚拟机“虚拟”了一个完整的操作系统,而容器只是一个隔离的进程而已。当一台主机上运行三个虚拟机的时候,你就拥有了三个完全分隔的操作系统,共享同一台主机。多个容器则会完全执行运行在宿主机上的同一个内核的系统调用,这个内核也是唯一一个在宿主机操作系统执行x86指令的内核。假...

从零开始攻略k8s(一):云原生前夜

2021-05-12
阅读 2 分钟
1.6k
罗马不是一天建成的,如今k8s被称为云原生时代的操作系统,霸主地位实际已不可动摇,在此之前,我简要梳理下容器技术兴起的背景与发展史,然后看下近年来应用程序的开发部署是如何变化的,理解这些变化,能够清晰地感知使用k8s带来的巨大优势。​

在django使用kubernetes健康检查

2021-05-12
阅读 4 分钟
2.6k
在上一篇文章中,我写了有关Kubernetes健康检查的文章,作为Python的开发人员和粉丝,我开始着手在Django中实现它。 运行健康检查是协助Kubernetes让你的应用具有高可用性的好方法,例如Django应用。 但是,使用Django并不像听起来那样简单。健康检查是Kubernetes探查应用是否健康的一种方式,它们认为你的应用可以在未...

使用Kubernetes健康检查

2021-05-12
阅读 3 分钟
2.9k
我最近看到了很多有关Kubernetes健康检查以及如何使用它们的问题,对此我将尽力解释它们以及运行状况检查的类型之间的差异以及每种检查将如何影响你的应用程序。​

k8s网络解决方案性能PK

2021-05-11
阅读 6 分钟
4.7k
本次课题的目标是找到具有最低延迟,最高吞吐量和最低安装成本的解决方案。 由于我的负载对延迟敏感,因此我的目的是在相对较高的网络利用率下测量较高的百分比延迟,特别是最大负载的30%到50%之间的性能,因为我认为这是最能代表非过载系统的最常见用例。

创建最小化的容器镜像(四):静态二进制文件

2021-05-08
阅读 6 分钟
5.1k
这是如何制作最小化Docker镜像系列文章的第四篇:静态二进制文件。 在第一篇文章中,我谈到了如何通过编写更好的Dockerfiles创建较小的镜像;在第二篇文章中,我讨论了如何使用docker-squash压缩镜像层以制作较小的镜像;在第三篇文章中,我介绍了如何将Alpine Linux用作较小的基础镜像。

创建最小化的容器镜像(三)

2021-05-08
阅读 2 分钟
3.6k
这是有关如何制作最小化Docker镜像系列文章中的第三篇。 在第一篇文章中,我谈到了如何通过编写更好的Dockerfiles创建较小的镜像,在第二篇文章中,我讨论了如何使用docker-squash压缩镜像层以制作更小的镜像。 这些方法确实很不赖,但是如果我们选择的基础镜像很大的话,之前两篇中介绍的方法将无济于事。

创建最小化的容器镜像(二)

2021-05-08
阅读 3 分钟
3k
这是有关如何制作最小化Docker镜像的第二篇文章,在之前的文章中,我谈到了如何创建最小化的Docker镜像,但是可以制作镜像的大小其实是有限制的,我概述了一种使添加到Docker镜像中的layer层变小的方法,但有时可能无法做到,也许需要按照特定的顺序运行一些额外的步骤。比如下面这个例子,需要在中间的步骤中添加一个文...

创建最小化的容器镜像

2021-05-08
阅读 3 分钟
3.5k
最近的工作中,我使用了很多种容器技术,其中最流行的技术当然是Docker。 除了允许你使用docker run命令轻松运行容器外,Docker还提供了一种构建容器镜像的方法以及生成的镜像的格式。 通过编写Dockerfile并执行docker build命令,可以轻松地创建在安装了Docker的任何位置(在一定约束条件下)运行的镜像。

什么是Kubernetes Pod?

2021-05-08
阅读 4 分钟
3.5k
很多人可能已经知道了这一点:其实并不存在真正的Linux“container”,在Linux中没有所谓的“容器”。 众所周知,容器是使用Linux内核的两个特性(称为namespaces和cgroups)运行的常规进程。 namespace可以为进程提供“视图”用来隐藏namespace之外的所有内容,从而为自己提供一个独立的运行环境,在其中运行的进程将无法看到...

Kubernetes上的蓝/绿部署

2021-05-07
阅读 4 分钟
2.5k
Kubernetes有一个资源对象,称为Deployments。 当你将应用程序更新到新版本时,Deployments具有进行容器滚动更新的功能。 滚动更新是一种更新应用程序的好方法,因为应用程序在更新过程中使用的资源与未更新时使用的资源数量大致相同,从而对性能和可用性的影响最小。

Container Runtimes(四): Kubernetes Container Runtimes & CRI

2021-05-07
阅读 4 分钟
3.7k
这是关于容器运行时系列文章的第四篇,也是最后一篇。 从第1篇开始已经有一段时间了,在那篇文章中,我概述了容器运行时,并讨论了低级和高级运行时之间的区别。 在第2篇文章中,我详细介绍了低级容器运行时,并构建了一个简单的低级运行时。 在第3篇文章中,我升级了技术栈,介绍了高级容器运行时。

Container Runtimes (三):高级容器运行时

2021-05-07
阅读 3 分钟
3.8k
这是系列文章的第三篇,在第一篇文章中,概述了容器运行时,同时介绍了低级容器运行时与高级容器运行时之间的区别;在第二篇文章中我详细介绍了低级容器运行时,并构建了一个简单的低级容器运行时。高级容器运行时的技术栈要高于低级容器运行时,低级容器运行时负责容器的实际运行,而高级容器运行时负责容器镜像额传输...

Container Runtime (二) :低级容器运行时

2021-04-28
阅读 4 分钟
3.8k
这是有关Container Runtime(容器运行时)系列文章的第二篇,在上篇文章中,我概述了Container Runtime,并讨论了低级和高级运行时之间的区别,在这篇文章中,我将详细介绍低级(low-level)Container Runtime。

Container Runtime (一) :介绍

2021-04-26
阅读 3 分钟
5.1k
前言 在涉及到容器时你经常听到一个术语:容器运行时。每个人对这个术语都有不同的理解,即使在容器社区也是这种情况。这篇文章是这个系列文章的第一篇,它们分别是:

什么是容器:命名空间和cgroups

2021-04-19
阅读 3 分钟
3.4k
当我第一次听到有关容器时,我的第一反应是:这啥玩意?它是一个进程吗?Docker是什么?容器就是Docker吗?救救可怜的孩子吧! 容器这个词指的并不是某种相当精确的事物,通常来说,几个Linux内核的特性(namespces和cgroups)能让进程之间彼此隔离,而当你使用了这些特性得到了互相隔离的进程时,你可以将其称之为‘容器...

pause容器是什么

2021-04-16
阅读 5 分钟
4.2k
这些 pause 容器是什么?为什么会有这么多的 pause 容器, 这到底是怎么一回事呢?为了回答这些问题,我们需要退后一步,看看k8s是如何实现pod的,尤其是在Docker/container runtime中。 Docker支持容器,这在部署单体服务时非常有用。但是当要同时运行多个软件时,这个模式就遇到了麻烦,你会经常看到这种情形:开发人...

[翻译]DevOps with k8s 1-1 Introduction to DevOps

2019-12-26
阅读 4 分钟
1.5k
软件交付周期越来越短,而另一方面,应用程序的规模越来越大。软件开发人员和IT运营商面临着找到解决此问题的压力。而有一个全新的角色,叫做DevOps,它致力于支持软件构建和交付。

kubernetes画像(3) - kubectl

2019-12-20
阅读 5 分钟
1.7k
command:子命令,用于操作Kubernetes集群资源对象的命令,例如create、delete、describe、get、apply等。

kubernetes画像(1) - 初见

2019-12-12
阅读 1 分钟
1.1k

REST API设计理念与 Python Mixin模式

2019-07-30
阅读 2 分钟
2.8k
REST API设计理念 Python Mixin模式 背景 民航飞机和直升机都是飞行器,又是交通工具,轿车也是交通工具,但是不会飞可以多重继承,但这违背了继承必须是”is-a”关系 不同语言的实现方法 java Java提供了接口interface功能,来实现多重继承 {代码...} 现在我们的飞机同时具有了交通工具及飞行器两种属性,而且我们不需要...

Docker k8s 网络架构对比

2019-07-30
阅读 4 分钟
6.7k
网桥是主机虚拟出来的,外部无法寻址。如果希望被外部寻址到,就需要通过映射容器端口到宿主机端口;而实际上端口映射是通过在iptables的NAT表中添加相应的规则来实现,也将这种方式称为NAT方式。NAT模型需要对各种端口进行映射,这会限制宿主机的能力,在容器编排上也增加了复杂度。

性能优化漫谈

2019-07-11
阅读 1 分钟
2.1k
工欲善其事必先利其器 {代码...} 性能基础知识之算法 性能分析 ][6] 图片描述 jvm调优

dockerfile最佳实践

2019-06-14
阅读 1 分钟
1.6k
最佳实践原则 指令优化 [链接]

从0开始学架构

2018-12-27
阅读 1 分钟
2.6k
理解架构 历史背景 设计背景 复杂度来源一 复杂度来源二 复杂度来源三 复杂度来源四

ELK 原理&部署过程

2018-12-27
阅读 6 分钟
5k
一图胜千言 基础架构 工作原理 Logstash工作原理 Logstash工作流程 ELK整体部署图 ELK 安装配置简化过程 {代码...} 最新版本yum安装 {代码...} 主要配置文件 {代码...} 汉化 {代码...} 其他优秀博客 {代码...}

k8s-设计理念-原理图

2018-12-27
阅读 1 分钟
6.7k
总览 k8s核心概念 k8s架构思维导图 2018-12-27-k8s结构图 2018-12-27-k8s-分层架构图 Svc&Pod网络拓扑图 flannel网络架构 2018-12-27-k8s-API设计理念 2018-12-27-k8s-控制机制设计原则

k8s 概念梳理 搭建集群 基本操作

2018-11-12
阅读 5 分钟
4.3k
k8s 核心概念思维导图 集群搭建 单节点 {代码...} 多节点 {代码...} init_mini_k8s.sh {代码...} 入门操作 创建查看集群 {代码...} 部署应用 {代码...} 发布应用 {代码...} 扩容缩容 {代码...} 更新回滚 {代码...} 删除 {代码...} 查看错误信息 {代码...} 参考 {代码...}

docker swarm

2018-10-18
阅读 2 分钟
2.4k
底层实现 命令列表 基于centos7 名称 指令 详细 开放HTTP的API /lib/systemd/system/docker.service ExecStart 参数后面加上 -H tcp://0.0.0.0:2375 刷新配置 systemctl daemon-reload 查看完整的报错信息 systemctl status docker -l 启动一个docker集群 docker swarm init --listen-addr 192.168.1.112:8888 --adverti...