配色: 字号:
docker&k8s
2020-08-12 | 阅:  转:  |  分享 
  
Docker&k8s让最新最火的技术为我们所用&作者:jiajia目录很火,我们要学&首先,docker&k8s是应用程序部署领域相关的技
术。docker是什么?一种容器技术,目前处于该领域的霸主地位;K8s是什么?一种容器编排管理技术,目前处于该领域的霸主地位。我
们现在可能还不太了解,但我们需要开始了解,学习,实践了。15年,腾讯就已经达到了百万规模的docker应用实践。16年,京东618
15万个docker实例,所有业务全部容器化。17年,阿里支持双11的所有应用都跑在了docker容器中,几十万docker容器
支撑起了双11交易17.5万笔每秒的下单峰值。新浪微博也在大规模的使用docker.未来可以预见只会有更多,不会少,是越来越多的公
司将使用容器方式进行程序的部署,并使用k8s进行容器管理。为什么?就像10年前移动互联网出现后,黑莓,塞班,安卓,ios出现激烈厮
杀后,android和ios胜出,从此所有公司都基于这2种平台进行开发。同样,容器及编排领域也进行了激烈的拼杀,最终docker胜
出,k8s胜出。早期很多公司都还在观望,现在已经确定无疑!Docker&k8s产生背景Docker讲的是什么故事???这是d
ocker的logo,很形象,充分表达了它是什么,以及它能做什么:1)docker是一搜能承载很多箱子的大船;2)箱子中可以装各
式各样的物品;物品种类虽有不同,但因为它们之间是相互隔离的,所以可以在一搜船上同行。3)物品只要按照要求准备齐全打包好,随时可装
箱,放到任意一搜大船上被运输。Docker专业一些的说法docker可以把运行环境和软件本身都打包在一块,生成镜像,到处运行,以
容器方式运行。仿佛虚拟机的操作系统镜像一般,但比之要轻便N倍、强大N的平方倍。一个虚拟机可能会消耗2到3G的内存,一个容器
仅仅只消耗几百M的资源哦。Docker相关的概念Dockerfile镜像镜像仓库容器Dockerfile,镜像,容器,镜像仓库之
间的关系Dockerfile例:FROM#指定所创建镜像的基础镜像MAINTAINER#指定维护者信息ADD#拷贝文件并解
压至目标目录CMD#指定启动容器时默认执行的命令拉取镜像1.从官方仓库DockerHub获取dockerpullNam
e[:TAG]通常描述一个镜像需要“名称+标签”,若不填写标签则默认选择latest标签,建议指定2.从自定义的镜像仓库获取d
ockerpull完整的仓库地址/Name[:TAG]查看本地镜像信息:dockerimages保存、导入、上传镜像保存:
dockersave–oxxxx.tarName[:TAG]导入:dockerload–ixxxx.tar登录:d
ockerloginDTR上传:dockerpushDTR创建Container命令:dockerrun–d–p8
0:80--name容器名image:tag注:dockerrun命令是利用镜像创建并启动容器-d:后台运行容器-p:映
射本机的指定端口到虚拟机的指定端口--name:容器名image:tag:指定要基于该镜像创建容器查看容器状态:docker
ps或dockerps–a容器启动后会返回一个唯一的ID,Up为运行状态,exit表示容器未运行Then,讲讲K8S,K8s
背景Google公司,早在10年前就已经使用容器化作为技术框架,并使用一款叫borg的系统进行容器管理,内部使用,不对外。但随着d
ocker的广泛使用,大家都在研究资源管理框架或者叫资源管理器,他担心以后它在该领域失去领导地位,google按照borg系统的思
路,使用go语言进行了翻新,从此k8s诞生.ApacheMesos(2019.5最大使用者twitter已经宣布不用了,改用k8
s)dockerswarm(2019.7国内阿里云swarm的集群框架已从选项中移除,全面使用k8s)googlek8s(功
能全面,运行稳定,当前几乎所有公司都在用的方案)K8S讲的是什么故事?K8s调度机制及组件说明K8s几个基本概念1.Pod是
k8s调度的最小单元它管理的不仅仅是docker容器它对容器进行了封装2.Deployment用于维持pod的数量如果某个服
务的容器有挂掉,该服务马上要自动创建出挂掉的容器,以满足服务需求。Service可将多个pod抽象为一个服务对内可做负载均衡对外可
暴露统一端口,供用户访问K8sYaml文件1apiVersion:apps/v1beta1kind:Delpoymentme
tadata:name:nginxspec:replicas:2template:metadata:labels:
app:nginxspec:containers:-name:nginximage:nginx:1.7.9por
ts:-containerPort:80K8syaml文件2apiVersion:v1kind:Servicemeta
data:name:mysql-servicespec:selector:app:mysqltype:NodePor
tports:-protocol:TCPport:3306#对集群内部访问端口targetPort:3
306#container端口nodePort:32564#此端口供外部调用K8s常用命令创建pod/deploy/
service:kubectlapply–f文件查看pod:kubectlgetpods[-owide]查看pod详
细信息:kubectldescribepodspod-name查看deploy:kubectlgetdeploy查看s
ervice::kubectlgetsvc查看pod日志:kubectllogspod-name登录容器:kubectl
exec–itpod-name/bin/bashDocker&k8s优势总结1)超级省资源,节约硬件成本。(由真机---
变成虚拟机---到现在的容器)2)可移植,部署变更更便捷。(微服务部署,集群式部署要求的大背景下,势必要进行大量的部署配置和部署执行,而采用docker&k8s技术,会将应用本身+运行环境都放在镜像里,一次准备,可随处运行,大大减少了各种环境安装配置过程,减少各种文件传输过程。)3)自动负载均衡4)支持故障自动迁移。5)支持弹性扩缩容。……很强大,我们要学习,使用。
献花(0)
+1
(本文系everydayOK原创)