容器

DOCKER 04:容器资源限制和网络原理

*爱你&永不变心* 提交于 2020-02-26 12:54:10
本文主要谈谈关于主机网络和容器网络的实现原理! 容器资源限制 在某些时候我们不想让容器肆无忌惮的抢占系统资源,所以就会对其做一系列的限制,这些参数可以使用蛮力查看到: docker container run --help 主要的限制参数包含以下这些: --cpu-shares :CPU 使用占比,如一个容器配置 10,一个配置 20,另外一个配置 10,那就是资源分配:1:2:1。 --memory :限制内存,比如配置 200M,但是如果不配置 swap,则实际内存其实是 400M。 --memory-swap :限制 swap,结合内存限制使用。 虚拟机网络名称空间(选择性了解) docker 网络隔离的实现方式其实就是网络名称空间的方式,但是这方面的知识其实对于就算是运维工程师也不一定有详细的了解,所以这部分内容作为选择性了解。简单的对其实现方式说明,然后看看效果是怎样的。 1. 建立两个网络名称空间: # 查看现有的网络名称空间 ip netns ls # 新建两个网络名称空间 ip netns add net-ns-1 ip netns add net-ns-2 # 在两个网络名称空间中分别查看它的网卡信息 ip netns exec net-ns-1 ip a ip netns exec net-ns-2 ip a 结果如图: 可以看到各自拥有一张回环网卡,并且未启动

C++11新增容器

孤人 提交于 2020-02-26 11:56:48
本节内容包括 std::array(数组) std::forward_list(单向链表) std::unordered_set std::unordered_multiset(无序容器) std::unordered_map std::unordered_mutlimap(无序容器) std::tuple(元组) std::array 看到这个容器的时候肯定会出现这样的问题: 为什么要引入 std::array 而不是直接使用 std::vector? 已经有了传统数组,为什么要用 std::array? 先回答第一个问题,std::vecotr 太强大了,以至于我们没有必要为了去敲碎一个鸡蛋而用一个钉锤。使用 std::array 保存在栈内存中,相比堆内存中的 std::vector,我们就能够灵活的访问这里面的元素,从而获得更高的性能;同时正式由于其堆内存存储的特性,有些时候我们还需要自己负责释放这些资源。 而第二个问题就更加简单,使用std::array能够让代码变得更加现代,且封装了一些操作函数,同时还能够友好的使用标准库中的容器算法等等,比如 std::sort。 std::array 会在编译时创建一个固定大小的数组,std::array 不能够被隐式的转换成指针,使用 std::array 很简单,只需指定其类型和大小即可: std :: array < int

docker学习随笔

不羁岁月 提交于 2020-02-26 06:27:15
理念: 在任何地方构建、发布并运行任何应用。一次封装,到处运行 解决问题: 解决了运行环境和配置问题软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术 虚拟机和Docker的区别: 传统虚拟技术是虚拟出一套硬件后,在其上运行一个完整的操作系统,在该系统上再运行所需应用进程 容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比虚拟机更轻便 每个容器之间相互隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源 Docker好处 :一次构建,随处运行 更快速的应用交付和部署 更便捷的升级和扩缩容 更简单的系统运维 更高效的计算资源利用 仓储/镜像/容器 Docker本身是一个容器运行载体或称之为管理引擎。我们把应用程序和配置一起打包好形成一个可交付的运行环境,这个打包好的运行环境就是image镜像文件。只有通过这个镜像文件才能生成Docker容器。image文件可以看作是容器的模板。Docker根据image文件生成容器的实例。同一个image文件可以生成多个同时运行的容器实例。 image文件生成的容器实例,本身也是一个文件,称为镜像文件。 一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的运行实例,也就是我们的容器 仓储就是放了一堆镜像的地方,我们可以把镜像发布到仓储中

Kubernetes kubectl常用命令

空扰寡人 提交于 2020-02-26 05:36:38
Kubernetes kubectl常用命令 [TOC] 1. 查看资源对象 常用查看资源对象( |rc| )有 namespace(ns) pods service(svc) endpoints(ep) deployment(deploy) pvc ingresses(ing) ,括号内为最简写法。 kubectl get |rc| 显示更多信息,在后面接 -o wide 、 -ojson 或者 -o yaml ,同时查看多个资源对象用英文逗号隔开。 查看资源对象全名,可通过 kubectl rc,|rc| 2. 创建资源对象 创建时,注意文件内是否有namespace,如果没有,请在命令后面指定 -n |namespace-name| 。 根据yaml配置文件一次性创建资源对象 kubectl create -f service.yaml -f deployment.yaml 根据 |directory| 目录下所有 .yaml 、 .yml 、 .json 文件的定义进行创建操作 kubectl create -f |directory| 对资源进行配置,最常用功能。 kubectl apply -f service.yaml kubectl apply -f |directory| 3. 编辑资源对象 编辑资源对象时,编辑器为 vi ,需要熟悉 vi 命令操作。

Kubernetes 系列第一篇: Kubernetes 介绍和名词解释

烈酒焚心 提交于 2020-02-26 05:36:20
1. Kubernetes 简介 1.1. 什么是 Kubernetes kubernetes 简称 k8s(因为k和s之间有8个字母), 是 Google 旗下的开源容器编排平台, k8s 的诞生深受 Google 内部容器编排系统 Borg 的影响, k8s 实现了如下功能 自动装箱 建构于容器之上, 基于资源依赖及其他约束条件自动完成容器部署 自我修复 支持容器故障后自动重启、节点故障后重新调度容器, 以及节点健康状态检查失败后关闭容器并重新创建等自我修复机制 水平扩展 支持通过命令或 UI 手动水平扩展, 以及基于 CPU 等资源负载率的自动水平扩展机制 服务发现和负载均衡 k8s 通过 CoreDNS 附件为系统内置了服务发现功能, 为每个 Service 配置 DNS 名称, 并允许集群内的客户端直接使用此名称发出访问请求, Service 通过 iptables 或 ipvs 内建负载均衡机制 自动发布和回滚 k8s 支持 灰度 更新应用程序或其配置信息, 在更新过程中 k8s 将会监控更新过程中应用程序的健康状态, 以确保 k8s 不会在同一时刻杀掉所有实例, 而此过程中一旦有故障发生, 将会立即自动执行回滚操作 秘钥和配置管理 k8s 的 ConfigMap 实现了配置数据与 Docker 镜像解耦, 需要时仅对配置做出变更而无须重新构建 Docker 镜像,

关键两步+6个要点,让Windows应用程序享有K8S的绝佳优势

走远了吗. 提交于 2020-02-26 05:29:02
本文来自 Rancher Labs 前 言 实际上,没有一个迁移路径能够适用于将所有传统应用程序迁移到云。这些应用程序通常在物理机、虚拟机或本地。虽然一般情况下是重新设计应用程序架构以适用云原生服务,但这并非是唯一的答案。将一个现有的应用程序的架构重新构建为微服务架构或云原生架构会面临诸多挑战,如重构成本、复杂性以及应用程序的依赖性。 虽然将应用程序的架构现代化有诸多好处,但许多组织仍在Windows 2003 Servers上运行现有服务。而微软不再支持Windows 2003为此带来了一些挑战。首先,人们不得不开始决定要如何处理这些应用程序,特别是Windows 2008的生命周期也即将结束。 许多企业想要迁移到现代架构中,期望以此能让他们的应用程序获得复杂性、安全性和可用性。而容器提供了使应用程序现代化并将其移至云原声服务的灵活性。在本文中,我们将重点介绍能够迁移到容器的应用程序,一般是.Net、Web、SQL和其他没有依赖性但在Windows2003上运行的应用程序。你可以无需更改代码就能将这些应用程序迁移到容器,并且使它们在将来具备可移植性。你将会享受到在Kubernetes上运行容器的好处,如可编排、可用性、更高的弹性伸缩和密度。 请注意:不是所有的应用程序和服务都能运行在容器中。有些应用程序存在核心依赖项(如数据库、存储需求等),这些都需要解决。此外

kubectl exec 执行 容器命令

↘锁芯ラ 提交于 2020-02-26 03:28:05
格式如下: kubectl exec -it podName -c containerName -n namespace -- shell comand 1 创建目录 kubectl exec -it spark-master-xksl -c spark-master -n spark -- mkdir -p /usr/local/spark 注意: shell命令前,要加-- 号,不然shell命令中的参数,不能识别 来源: 51CTO 作者: 季高520 链接: https://blog.51cto.com/11457238/2161319

kubectl exec 执行 容器命令

百般思念 提交于 2020-02-26 03:27:58
格式如下: kubectl exec -it podName -c containerName -n namespace -- shell comand 1 创建目录 kubectl exec -it spark-master-xksl -c spark-master -n spark -- mkdir -p /usr/local/spark 注意: shell命令前,要加-- 号,不然shell命令中的参数,不能识别 来源: 51CTO 作者: 故新 链接: https://blog.51cto.com/xingej/2161324

文字超出容器长度自动隐藏并且显示省略号

久未见 提交于 2020-02-26 02:52:29
在做网站的过程中我们会遇到这样一种情况,在新闻列表中一行只显示一条新闻,但是新闻标题的长短是不一样的,如果新闻标题过长会自动换行,当然可以使用溢出隐藏属性,但是使用溢出隐藏又会显得比较突兀,现在给大家提供以下解决方法 <style> p { white-space:nowrap;overflow:hidden;text-overflow:ellipsis;} </style> 只需要在原先写好的样式中加入上述代码即可 来源: 51CTO 作者: 日晚间粉 链接: https://blog.51cto.com/12765394/2161404