容器

Kubernetes-Docker(理论)-1

吃可爱长大的小学妹 提交于 2020-01-10 22:24:15
Kubernetes-Docker集群管理 Kubernetes介绍 Kubernetes是一个开源的Docker容器编排系统,Kubernetes简称K8S。 调度计算集群的节点,动态管理上面的作业 通过使用[labels]和[pods]的概念,将应用按逻辑单元进行分组 K8S用于容器应用程序的部署,扩展和管理 K8S提供了容器编排,资源调度,弹性伸缩,部署管理,服务发现等一系列功能 Kubernetes目标是让部署容器化应运简单高效 官方网站: http://www.kubernetes.io Kubernetes特性 自我修复 在节点故障时重新启动失败的容器,替换和重新部署,保证预测的副本数量;杀死健康检查失败的容器,并且在未准备好之前不会处理客户端请求,确保线上服务不中断。 弹性伸缩 使用命令、UI或者基于CPU使用情况自动快速扩容和缩容应用程序实例,保证应用业务高峰并发时的高可用性;业务低峰时回收资源,以最小成本运行服务 自动部署和回滚 K8S采用滚动更新应用,一次更新一个Pod,而不是同时删除所有Pod,如果更新过程中出现问题,将回滚更改,确保升级不受影响业务 服务发现和负载均衡 K8S为多个容器提供一个统一的访问入口(内部IP地址和UI个DNS地址),并且负载均衡关联的所有容器,使得用户无需考虑容器IP问题 机密和配置管理 管理机密数据和应用程序配置

Docker安全管理——包括TLS(安全认证)——理论详解+操作

久未见 提交于 2020-01-10 22:20:30
Docker安全管理——理论+操作 -------------------------------------------------Docker 容器与虚拟机的区别------------------------------------------------------ **1.隔离与共享** 虚拟机通过添加 Hypervisor 层,虚拟出网卡、内存、CPU 等虚拟硬件,再在其上建立 虚拟机,每个虚拟机都有自己的系统内核。 而 Docker 容器则是通过隔离的方式,将文件系 统、进程、设备、网络等资源进行隔离,再对权限、CPU 资源等进行控制,最终让容器之间互不影响, 容器无法影响宿主机。容器与宿主机共享内核、文件系统、硬件等资源。 #docker容器共享同一个内核资源,而虚拟机是独立的使用的资源都是独立的。 **2.性能与损耗** 与虚拟机相比,容器资源损耗要少。 同样的宿主机下,能够建立容器的数量要比虚拟 机多。但是,虚拟机的安全性要比容器稍好, 要从虚拟机破到宿主机或其他虚拟机,需要 先破 Hypervisor 层,这是极其困难的。而 docker 容器与宿主机共享内核、文件系统等资源, 更有可能对其他容器、宿主机产生影响。 #与虚拟机相比容器消耗资源要少的多,因为容器是共享内核的意味着,一个容器资源占用多,其他容器占用的就少,一个容器出现问题,其他容器都会出现问题

Docker容器端口映射无法访问的问题排查

痞子三分冷 提交于 2020-01-10 20:20:58
一、背景 一般需要对外提供服务的Docker容器,我们在启动时后使用-p命令将对外访问端口暴露给外部,例如启动Docker Registry,我们将5000端口映射出来供外部访问: docker run -d -p 5000:5000 registry 但最近碰到一个非常奇怪的情况:研发组里一个CentOS 7测试环境里部署有Docker Registry,并对外暴露了端口。启动容器后一段时间内都是可以正常工作的,但在不定时间间隔后,外部主机就会出现无法从仓库中拉取镜像的情况,提示TimeOut: 然而在Docker宿主机上访问仓库则可以正常访问: 至于这个问题,只有手动重启出问题的Docker daemon服务后,外部才可以重新访问,但只要再过一段时间又会出现这样的问题。 二、问题排查 碰到这个问题我第一反应就是问组里的人,是不是有人重启过CentOS 7 自己的firewallD了。 因为这台服务器是我配置的,防火墙虽然开着但我已经开启端口访问了,所以肯定不是因为防火墙阻断连接的缘故。但由于这篇文章是篇踩坑排查文档,所以还是把这种情况写出来了 情况一:开着防火墙但没有开放端口 CentOS 7自带并启用了防火墙FirewallD,我们可以通过下面的命令检查FirewallD的状态: firewall-cmd --state 如果输出的是“not running

kubernetes CNI

我怕爱的太早我们不能终老 提交于 2020-01-10 19:40:37
CNI - Container Network Interface(容器网络接口) CNI(Container Network Interface)是CNCF旗下的一个项目,由一组用于配置Linux容器的网络接口的规范和库组成,同时还包含了一些插件。CNI仅关心容器创建时的网络分配,和当容器被删除时释放网络资源。通过此链接浏览该项目: https://github.com/containernetworking/cni 。 Kubernetes源码的 vendor/github.com/containernetworking/cni/libcni 目录中已经包含了CNI的代码,也就是说kubernetes中已经内置了CNI。 接口定义 CNI的接口中包括以下几个方法: type CNI interface { AddNetworkList(net *NetworkConfigList, rt *RuntimeConf) (types.Result, error) DelNetworkList(net *NetworkConfigList, rt *RuntimeConf) error AddNetwork(net *NetworkConfig, rt *RuntimeConf) (types.Result, error) DelNetwork(net *NetworkConfig,

C++ 中求string和容器大小

廉价感情. 提交于 2020-01-10 17:12:46
string: string str("hello world"); str.size(); str.length(); strlen(str.c_str()); end(str) - begin(str) 固定容器大小的array: sizeof(array)/sizeof(array)[0]; end(str) - begin(str); vector: vector是可变大小容器,vector 的容量大小,是指在不分配更多内存的情况下可以保存的最多元素个数,这时 可能有 20 个元素,也可能没有。vector 的大小是它实际所包含的元素个数,也就是有值的元素的个数。图 1 对此做了说明: 显然 vector 的大小不能超出它的容董。当大小等于容量时,增加一个元素就会导致更多内存的分配。对于一个 vector 对象来说,可以通过调用 size() 和 capacity() 函数来得到它的大小和容量。它们返回的是我们自己定义的无符号整型值。例如: std::vector<size_t> primes { 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41 ,43 ,47 }; std::cout << "The size is " << primes.size() << std::endl; std::cout << "The

Spring--2.Spring之IOC--了解IOC容器

纵饮孤独 提交于 2020-01-10 17:02:37
IOC(容器),用来集成别的框架 1.IOC(Inversion(反转)Of Control):控制反转   控制:资源的获取方式:       主动式:         BookServlet{           BookService bs=new BookService();           AirPlane ap=new AirPlane();//复杂对象的创建是比较庞大的工程         }       被动式:资源的获取不是我们自己创建,而是交给一个容器来创建和设置         BookServlet{           BookService bs;           public void test01(){             bs.checkout();           }         }   容器:管理所有组件(有功能的类);假设,BookServlet受容器管理,BookService也受容器管理;容器可以自动探查出哪些组件(类)需要用到另一些组件(类);容器帮我们创建BookService对象,并把BookService对象赋值过去;   容器:主动的new资源变为被动的接受资源。类似于婚介所,告诉婚介所要一个怎么样的对象,婚介所自动给你安排剩下的事情,不需要自己找。 DI:(Dependency Injection)依赖注入

docker生产环境部署jar包命令

醉酒当歌 提交于 2020-01-10 11:54:47
docker部署jar包命令 1.启动/关闭/重启docker进程: systemctl start/stop/restart docker 2.1进入容器根目录: sudo docker exec -it smart_restaurant \ 2.2进入容器重启jar包: sudo docker exec -it smart_restaurant \ java -jar app.jar 3.查看docker容器控制台日志: docker logs -f -t --since="2020-01-08" --tail=200 smart_restaurant -f/--follow 跟踪实时日志 -t/--timestamps 显示时间戳(由于java日志有时间戳,最好不加'-t') --since 开始时间 --tail 最后200行日志 smart_restaurant 容器名称(应用名) 4.根据Dockerfile、jar打包镜像image: sudo docker build -t smart_restaurant(镜像名) . 5.删除镜像image: docker rmi -f smart_restaurant(镜像名/ID) -f 运行容器时强制删除镜像 6.删除容器: docker rm -f smart_restaurant(容器名/ID) -f 停止并删除 -v

docker 001

Deadly 提交于 2020-01-10 11:30:01
docker 001 docker简介 容器与管理程序虚拟化不同,管理程序虚拟化是将一台或多台独立的虚拟机运行在硬件上,而容器则是直接在操作系统内核上的用户空间。因此,容器虚拟化也被称为“操作系统级虚拟化”,容器技术可以让多个独立的用户控件运行在同一台宿主机上。 因此,容器只能运行与宿主机相同或相似的操作系统,例如:ubuntu 服务器上可以运行 centos,但无法运行windows。 docker 是一个能把应用程序自动部署到容器的开源引擎。 docker 在虚拟化的容器执行环境中增加了一个应用程序部署引擎,引擎的目标是提供一个清凉、快速的环境,能够运行开发者的程序,并方便高效的将程序从开发者的笔记本部署到测试环境,然后再部署到生产环境。 docker 的目标是提供以下内容: 提供一个简单、轻量的建模方式 快速修改程序代码,快速启动,高性能,系统资源利用率高 职责的逻辑分离 开发人员只需管理容器中的程序,运维人员只需关心容器管理。保证开发与部署环境的一致 快速高效的开发生命周期 缩短从开发、测试部署、上线的周期,是程序具有可移植性,易构建,易协作 鼓励使用面向服务的架构 鼓励面向服务的构架和微服务架构,推荐一个容器只运行一个程序或进程,这就形成了分布式应用程序模型。 docker 组件 docker 客户端和服务器(也称为 docker 引擎) docker 镜像

kata containers

自作多情 提交于 2020-01-10 11:16:49
安全容器,kata为解决容器的安全而生。Kata容器与容器一样轻便,快速,并与容器管理层集成在一起,包括流行的编排工具,例如Docker和Kubernetes(k8s),同时还具有VM的安全优势。 来源: https://www.cnblogs.com/peteremperor/p/12174862.html