容器技术

当运维遇上了...

回眸只為那壹抹淺笑 提交于 2020-02-26 13:31:53
当运维碰到docker时有什么想法? 使用Docker,不会再需要为了一个开发项目而准备多个测试和生产环境,从根本上解决了环境配置的难题; 缓解了使用虚拟机造成的 资源占用多 , 操作冗余步骤多 , 启动慢 的问题,而相对的Docker容器则是 资源占用少 , 一次配置 , 启动时间短 , 运行体积小 ; 对于多实例多环境的配置,需要多次安装步骤,而使用Docker则是写一次Dockerfile即可一直使用,达到 configure as a code 环境隔离更便捷,比如可以针对某个服务进行CPU,memory限制; ...更多的优点,我想当你使用上Docker以后,至少能减少一半重复劳动的时间 当运维碰到kubernetes时有什么想法? 如果某一台服务器突然宕机了,那么上面运行的服务是不是就不可以正常访问了? 如果使用kubernetes的deployment,就能保证我们的服务实例永远运行在我 期望的状态 ; 不管传统的服务升级还是使用Docker容器发布的服务,在进行服务发布的时候,是不是确实存在某一个时刻服务有短暂的不可访问?503? 如果使用kubernetes的deployment来进行滚动升级,就能实现服务 zero-downtime ; 当服务的负载很高的时候,你是如何发现服务的负载大的,发现之后要扩容?还是增加服务实例?到完成扩容完整需要多久的时间?

docker安装

依然范特西╮ 提交于 2020-02-26 11:42:19
1.使用 yum 安装docker(CentOS 7下): Docker 要求 CentOS 系统的内核版本高于 3.10 1.首先通过 uname -r 命令查看你当前的内核版本 指令:uname –r 2.使用su root切换用户权限到root 指令:su root 输入你root权限的密码(密码是你安装虚拟机时设置的超级管理密码),密码正确如上图进入root权限 3.使用yum update确保 yum 包更新到最新。(备注:以下指令执行时会弹出很多内容,只截取了一部分图片,需要一定时间,等待即可),出现统计信息提示是否确认,输入y并按下Enter。 指令:yum update 4.卸载旧版本(如果安装过旧版本的话,没安装过直接跳过) 指令:yum remove docker docker-common docker-selinux docker-engine 5.安装一些必要的系统工具: 指令:yum install -y yum-utils device-mapper-persistent-data lvm2 6.添加软件源信息: 指令:yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 7.安装 docker-ce: 指令:yum

docker学习随笔

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

docker命令总结(二)

家住魔仙堡 提交于 2020-02-26 04:10:35
上次只是给大家把命令的作用以及简单使用列出来了(大家可以查看: docker命令总结(一) ),那这篇文章会详细介绍每条命令的参数 ## search docker search:此命令是用来在仓库中查找docker镜像 语法: docker search 参数 镜像名称:tag(版本) 参数说明: --filter,-f:根据相关条件过滤输出 --format:使用Go模板进行漂亮的打印搜索 --limit:指定最大搜索结果,默认25个 --no-trunc:显示完整的镜像描述 --stars,-s:列出收藏数不小于指定值的镜像 --automated:仅显示自动构建的镜像 示例: 默认搜索 ubuntu@VM-101-242-ubuntu:~$ sudo docker search nginx NAME DESCRIPTION STARS OFFICIAL AUTOMATED nginx Official build of Nginx. 12438 jwilder/nginx-proxy Automated Nginx reverse proxy for docker con… 1713 richarvey/nginx-php-fpm Container running Nginx + PHP-FPM capable of… 750 linuxserver/nginx An

超长可视化指南!带你理清K8S部署的故障排查思路,让bug无处遁形

旧时模样 提交于 2020-02-26 03:21:49
本文将帮助你厘清在Kubernetes中调试 deployment的思路。下图是完整的故障排查思路,如果你想获得更清晰的图片,请在公众号后台(RancherLabs)回复“ troubleshooting ”。 当你希望在Kubernetes中部署一个应用程序,你通常需要定义三个组件: Deployment——这是创建名为Pods的应用程序副本的方法 Serivce——内部负载均衡器,将流量路由到Pods Ingress——可以描述流量如何从集群外部流向Service 接下来,我们通过图片快速回顾一下。 在Kubernetes中,你的应用程序通过两层负载均衡器暴露:内部和外部。 内部负载均衡器称为Service,而外部负载均衡器则称为Ingress。 Pod未直接部署,因此,Deployment创建Pod并监视它们。 假设你想部署一个简单的Hello World应用程序,那么对于此类应用程序,其YAML文件与以下类似: apiVersion: apps/v1 kind: Deployment metadata: name: my-deployment labels: track: canary spec: selector: matchLabels: any-name: my-app template: metadata: labels: any-name: my-app spec

Kubernetes测试环境minikube部署(理论+实战!!!)

て烟熏妆下的殇ゞ 提交于 2020-02-26 02:35:32
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问题 机密和配置管理: 管理机密数据和应用程序配置。而不需要把敏感数据暴露在镜像里

杉岩数据容器云存储解决方案

旧街凉风 提交于 2020-02-26 02:09:05
现代化的企业私有云IT基础架构中,越来越多的生产环境正在逐步变革,将以传统虚拟化为中心的架构向以容器和微服务为中心的云原生架构过渡,在这个过程中,存储如何有效支撑各种云主机应用与微服务应用,对于企业的私有云数据中心提出了很大挑战。 杉岩容器云存储解决方案充分发挥了杉岩存储产品的云服务能力,具备广泛的生态合作基础,可高效地对接各种云化的计算资源,降低复杂私有云数据中心的基础架构层管理运维成本。 面临的挑战 业务调度变更频繁,资源不能共享 随着容器、微服务平台在企业私有云环境的上线,大型企业的应用快速开发迭代、发布频繁对于存储系统的弹性支撑能力提出了严峻挑战,且不同的业务数据保存在计算节点本地或者不同的外部存储设备中,数据流动性差,不仅导致存储空间及性能资源浪费严重,数据灾备方案难以统一。 开源产品难维护,无法实现企业级产品化 基于开源技术的容器编排系统如Kubernetes等为众多客户提供了快速构建PaaS平台的能力,但是存储部分却不一样,开源的存储系统如Ceph虽然可以在生产环境部署,但也面临一些问题:与硬件和企业级应用生态融合程度不高,严重依赖人工开发运维,在性能和服务质量方面不能同时满足敏态与稳态应用的需求。 存储接口需求多样化,没有统一的存储平台 容器平台中的中间件、数据库等需要持久化存储的业务通常直接使用块设备或文件夹,一些无状态应用则需要对象存储

回顾 | Kubernetes SIG-Cloud-Provider-Alibaba 首次网研会(含

时光总嘲笑我的痴心妄想 提交于 2020-02-26 01:43:33
作者 | 汤志敏、谢瑶瑶 会议完整视频回顾: https://www.bilibili.com/video/av88668762 2 月 12 日,阿里云和 CNCF 联合举办了线上研讨会,首次完整介绍了阿里云对 Kubernetes 社区的布局,包括了 10 个类别,20 多个开源项目,提供了完整的 Kubernetes 生命周期管理。本文汇集了此次会议完整视频回顾及资料下载,并整理了会议上未能及时回答的问题,希望能够对大家有所帮助~ 关注“阿里巴巴云原生”公众号,后台回复 “会议” 即可下载 PPT。 什么是 SIG Cloud Provider 随着时间的发展,越来越多的企业在生产环境使用 Kubernetes。Kubernetes 被广为接受,离不开其良好的设计和繁荣的社区。目前围绕着 Kubernetes 已经有 20 个左右的兴趣小组(SIG),SIG Cloud Provider 则是 Kubernetes 的重要兴趣小组之一,致力于推动所有云厂商以标准的能力提供 Kubernetes 服务。 SIG-Cloud-Provider-Alibaba 是 SIG Cloud Provider 在国内唯一的子项目。 Cloud Provider SIG 是 Kubernetes 的云厂商兴趣小组,致力于让 Kubernetes 的生态系统往厂商中立的方向演进

Docker 容器操作

柔情痞子 提交于 2020-02-25 22:08:32
Docker 容器 类似于一个轻量级的沙箱子(因为Docker是基于Linux内核的虚拟技术,所以消耗资源十分少),Docker利用容器来运行和隔离应用。 容器是从镜像创建的应用运行实例,可以将其启动、开始、停止、删除,而这些容器都是相互隔离、互不可见的。 可以吧每个容器看作一个简易版的Linux系统环境(包括了root用户权限、进程空间、用户空间和网络空间),以及与运行在其中的应用程序打包而成的应用盒子。 镜像自身是只读的。容器从镜像启动的时候,Docker会在镜像的最上层创建一个可写层,镜像本身将保持不变。就像用ISO装系统之后,ISO并没有什么变化一样。 Docker 容器相关操作 1.创建容器 docker create -it nginx /bin/bash #容器创建 docker ps -a #查看 2.容器查看 docker ps -a #查看所有 3.容器启动与关闭 docker start 7564a08a0005 #启动容器 docker run nginx /bin/bash -c ls / #启动执行命令查看系统根目录 备注:上条命令执行完成直接关闭 状态是Exited 持续在后台执行 docker run -d nginx /bin/bash -c "while true;do echo hello;done" docker ps 注意:docker

你的K8s 运行时环境安全吗? KubeXray帮你保护K8s环境及应用

喜欢而已 提交于 2020-02-25 21:19:10
引言 大多数安全措施都是为了防止漏洞逃跑而设计的, 在此之前,我们也分享了一些第三方安全扫描的文章(请移步到历史文章中查看),尽早识别应用程序的风险意味着您可以防止或限制它部署到您的系统中(安全左移策略)。有了这些知识或工具,容器中任何可能造成损坏的漏洞都可以安全地留在由您的安全策略围栏后面。 但是,当这些漏洞已经逃跑时,我们能做什么呢? 如何确保已经在Kubernetes pods中运行的容器和应用程序符合您当前的风险和策略? 背景(运行时安全管控) 由于大多数应用程序严重依赖于包管理器和开源存储库,因此它们很容易受到来自这些源的恶意或不安全代码的***。想象我们交付的软件 Application 是一张饼,我们自己开发的代码仅占其中很小一部分,见下图: 最近,当Javascript社区得知npm module中流行的事件流包被一个针对比特币钱包平台的恶意包更新时,他们非常愤怒。在被发现和报道之前的三个月里,这个包被下载了近800万次。 虽然来自社区包管理器的此类事件并不常见,但并不少见。一年前,npm发现并删除了39个恶意包。所以很多包在我们安全策略发现之前可能已经进入到了生产环境 解决方案 在介绍如何对运行时进行安全控制之前,先回顾一下常见漏洞扫描工具的原理:这里以JFrog Xray 为例: 通用二进制分析工具和策略引擎JFrog Xray