书签 分享 收藏 举报 版权申诉 / 31
上传文档赚钱

类型技术分享k8s容器分享课件.pptx

  • 上传人(卖家):三亚风情
  • 文档编号:3327360
  • 上传时间:2022-08-20
  • 格式:PPTX
  • 页数:31
  • 大小:2.10MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《技术分享k8s容器分享课件.pptx》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    技术 分享 k8s 容器 课件
    资源描述:

    1、Kubernetes容器的探索与实践-徐兴强整体介绍dockerdocker与与KubernetesKubernetes的关系的关系2Kubernetes介绍介绍3KubernetesKubernetes集群部署集群部署14KubernetesKubernetes运维经验运维经验KubernetesKubernetes运维经验运维经验Docker容器与传统虚拟化方式的不同之处?与传统技术对比:接下来我们看两张经典的图:一、从虚拟化角度:图1:dockerdocker与与KubernetesKubernetes的关系的关系传统的虚拟技术:在将物理硬件虚拟成多套硬件后,需要再每套硬件上都部署一个操

    2、作系统,接着在这些操作系统上运行相应的应用程序。Docker容器:容器内的应用程序进程直接运行在真实物理机的内核上,Docker引擎将一些各自独立的应用程序和它们各自的依赖打包,相互独立直接运行于宿主机硬件上,同时各个容器也没有自己的内核,显然比传统虚拟机更轻便。注:一个容器包含了完整的运行时环境:除了应用程序本身之外,这个应用所需的全部依赖、类库、其他二进制文件、配置文件等,都统一被打入了一个称为容器镜像的包中二、从部署角度图2:dockerdocker与与KubernetesKubernetes的关系的关系传统部署方式:是将所有应用直接部署在同一个物理机器节点上,这样每个App的依赖都是完

    3、全相同的.Docker容器部署:通过部署Container容器的技术来部署应用,全部Container运行在容器引擎上即可。想用Docker,怎么用呢?手动一个一个创建?当然不,故kubernetes技术便出现了,以kubernetes为代表的容器集群管理系统,这时候就该上场表演了。我们用kubernetes去管理Docker集群,即可以将Docker看成Kubernetes内部使用的低级别组件。另外,kubernetes不仅仅支持Docker,还支持Rocket,这是另一种容器技术。kuberneteskubernetes介绍介绍-什么是什么是k8sk8sl K8s全称Kubernetes,

    4、是目前主流的容器编排系统,提供容器的生命周期管理。l k8s目标:提供一个规范,可以描述业务集群的架构,定义服务的最终状态,使业务系统自动得达到和维持在这个状态。k8s的前世今生Kubernetes特性k8s的前世今生:MESOSAPACHE早期的分布式资源管理框架2019-5Twitter开始使用Kubernetes,剔除MESOSDockerSwarm2019-07阿里云宣布DockerSwarm剔除Google10年容器化基础架构borgGO语言重编Borg-k8srancher官方预测:76%的企业会在三年内采纳Kubernetes作为标准。而且IBM也正在逐渐放弃大机,减弱小机,发力

    5、云原生kuberneteskubernetes介绍介绍-特性特性l 自我修复自我修复节点发生故障时,容器会在其他节点重新部署;杀死健康检查失败的容器,在容器未创建成功之前,不让它处理客户端请求,确保线上服务不中断。l 弹性伸缩弹性伸缩为了保证业务在高峰时的可靠性,根据业务使用的CPU、内存资源或其他自定义指标,实现业务的扩容;业务低峰时回收资源,以最小成本运行服务。l 自动部署和回滚自动部署和回滚为了支持业务版本迭代,K8S采用滚动更新策略更新应用,一次更新一个业务Pod,而不是同时删除所有Pod,如果更新过程中出现问题,会回滚更改,确保升级不影响业务。l 服务发现和负载均衡服务发现和负载均衡

    6、K8S为多个容器提供一个统一访问入口(内部IP地址和域名),并且负载均衡所有关联的容器,使得用户无需考虑容器IP变化问题。l 秘钥和秘钥和配置管理配置管理管理秘钥数据和应用程序配置,而不需要把敏感数据暴露在镜像里,提高敏感数据安全性。并可以将一些常用的配置存储在K8S中,方便应用程序使用。l 存储编排存储编排为容器提供挂载存储的服务,支持本地存储,可以对接一些主流网络存储(如NFS、GlusterFS、Ceph)。l 批处理批处理提供一次性任务,定时任务;满足批量数据处理和分析的场景。Kubernetes特性KubernetesKubernetes集群集群架构架构Master和Node1.Ku

    7、bernetes将集群中的机器划分为一个Master节点和一群工作节点(Node)。2.Master节点上运行着集群管理相关的一组进程etcd、APIServer、ControllerManager、Scheduler,这些进程实现了整个集群的资源管理、Pod调度、弹性伸缩、安全控制、系统监控和纠错等管理功能,并且全都是自动完成。3.在每个Node上运行Kubelet、Proxy、Dockerdaemon三个组件,负责对本节点上的Pod的生命周期进行管理,以及实现服务代理的功能MasterMaster组件组件1.1.kube-apiserver kube-apiserver 对外提供API接口

    8、,处理所有资源的增删改查和监听操作,并将数据保存在Etcd。所有服务访问统一入口2.2.kube-controller-kube-controller-manager manager-控制器控制器 ControllerManager负责管理各个资源对应的控制器。维持副本期望数目3.3.kube-scheduler kube-scheduler-调度器调度器 负责介绍任务,选择合适的节点进行分配任务,根据调度算法为新创建的Pod选择一个合适节点部署。4.4.etcd etcd 分布式键值存储系统。用于保存k8s资源数据,比如集群状态数据,Pod、Service等API对象,储存K8S集群所有重要

    9、信息NodeNode组件组件1.kubelet kubelet管理本机运行的容器,可以创建容器、为Pod挂载数据卷、获取容器和节点状态等功能。直接跟容器引擎交互实现容器的生命周期管理2.kube-proxy负责写入规则至 IPTABLES、IPVS 实现服务映射访问的,具有一定的四层负载均衡功能。KubernetesKubernetes介绍介绍-pod-pod1.Pod是k8s中可部署的最小单位,它可以由单个容器组成,也可以是多个容器。2.Pod在Node上被创建、启动或者销毁;每个Pod里运行着一个特殊的被称之为Pause的容器,其他容器则为业务容器,pause容器有一个ip地址,和一个存储

    10、卷,pod中的其他容器共享pause容器的ip地址和存储,这样就做到了文件共享和互信。KubernetesKubernetes介绍介绍-serviceservice在Kubernetes的世界里,虽然每个Pod都会被分配一个单独的IP地址,但这个IP地址会随着Pod的销毁而消失,这就引出一个问题:如果有一组Pod组成一个集群来提供服务,那么如何来访问它呢?Service!一个Service可以看作一组提供相同服务的Pod的对外访问接口,Service作用于哪些Pod是通过LabelSelector来定义的。拥有一个指定的名字(比如my-mysql-server);拥有一个虚拟IP(Cluste

    11、rIP、ServiceIP或VIP)和端口号,销毁之前不会改变,只能内网访问;能够提供某种远程服务能力;被映射到了提供这种服务能力的一组容器应用上;如果Service要提供外网服务,需指定公共IP和NodePort,或外部负载均衡器;Service主要用于服务发现。Service有多种类型。主要使用clusterIP和nodeport。clusterIP用于集群内业务通信。Nodeport用于外部访问集群业务。KubernetesKubernetes集群集群架构架构-山东移动山东移动paaspaas容器化容器化目前山东移动已经实现3区crm中间件的容器化。KubernetesKubernete

    12、s集群部署集群部署1.配置本地yum源cp/etc/yum.repos.d/CentOS-Media.repo/etc/yum.repos.d/CentOS-Media.repo.bak/本地yum配置文件mkdir/mnt/cdrom/创建用于挂载光盘的目录mount/dev/sr0/mnt/cdrom/挂载catCentOS-Media.repo/etc/resolv.conf/etc/hosts/etc/ansible/hosts/etc/sysctl.confansibleall-mcommand-asysctl-pansibleall-mcommand-ased-is/.*cento

    13、s_centos7-swap/#&/g/etc/fstab13.【Master】批量安装telnetansibleall-mcommand-ayuminstall-ytelnetKubernetesKubernetes集群部署集群部署14.【Master】配置iptables对转发数据包进行处理,启用数据包转发cat/etc/sysctl.d/k8s.confnet.bridge.bridge-nf-call-ip6tables=1net.bridge.bridge-nf-call-iptables=1net.ipv4.ip_forward=1EOFsysctl-system/etc/sysc

    14、tl.d/k8s.confansiblenode-mcopy-asrc=/etc/sysctl.d/k8s.confdest=/etc/sysctl.d/k8s.confansiblenode-mcommand-asysctl-system/etc/sysctl.d/k8s.conf15.【Master】时间服务配置,几个节点的时间必须保持同步,否则会出现意料不到的结果ansibleall-mcommand-ayuminstall-yntpdateansibleall-mcommand-ansibleall-mcommand-ayuminstall-yntpansibleall-mcomman

    15、d-asystemctlenablentpdansibleall-mcommand-asystemctlstartntpdansibleall-mcommand-atimedatectlset-timezoneAsia/Shanghaiansibleall-mcommand-atimedatectlset-ntpyesansibleall-mcommand-ahwclock-hctosysansibleall-mcommand-atimedatectlset-local-rtc0ansibleall-mcommand-ahwclock-showKubernetesKubernetes集群部署集

    16、群部署16、安装dockeryuminstall-ydockersystemctlstartdocker&systemctlenabledocker#【Master】配置docker的cgroupdriver、加速器cat/etc/docker/daemon.jsonEOFexec-opts:native.cgroupdriver=systemd,log-driver:json-file,log-opts:max-size:100m,storage-driver:overlay2,storage-opts:overlay2.override_kernel_check=true,registry

    17、-mirrors:https:/EOFansiblenode-mcopy-asrc=/etc/docker/daemon.jsondest=/etc/docker/daemon.jsonansibleall-mcommand-asystemctldaemon-reloadKubernetesKubernetes集群部署集群部署批量操作安装节点docker并启动ansiblenode-mcommand-ayuminstall-ydockeransiblenode-mcommand-asystemctlstartdockeransibleall-mcommand-asystemctlenabled

    18、ocker17.更新kubernetes源cat/etc/yum.repos.d/kubernetes.repokubernetesname=Kubernetesbaseurl=https:/ kubectlgetdeployment#查看deployment kubectlgetpods-nkube-system#查看kube-system空间下的pod2.创建资源kubectlcreate-f./my-manifest.yaml#从文件创建资源kubectlcreate-f./dir#使用目录下的所有清单文件来创建资源3.编辑资源kubectl edit configmapkubectl

    19、edit deploy4.删除资源kubectl delete pod pod-nameKubectl delete-f./my-manifest.yamlKubernetesKubernetes运维经验运维经验kubectllogsmy-pod#输出 pod 的日志(stdout)kubectlexecmy-pod-ls/#在已存在的容器中执行命令(只有一个容器的情况下)kubectlexecmy-pod-cmy-container-ls/#在已存在的容器中执行命令(pod 中有多个容器的情况下)kubectltoppodPOD_NAME-containers#显示指定 pod 和容器的指标

    20、度量kubectltopnodemy-node#显示 my-node 的指标度量kubectlcordonmy-node#标记 my-node 不可调度kubectldrainmy-node#清空 my-node 以待维护kubectluncordonmy-node#标记 my-node 可调度kubectlcluster-info#显示 master 和服务的地址kubectltaintnodesfoodedicated=special-user:NoSchedulekubectllogsmy-pod#输出 pod 的日志(stdout)kubectlexecmy-pod-ls/#在已存在的

    21、容器中执行命令(只有一个容器的情况下)kubectlexecmy-pod-cmy-container-ls/#在已存在的容器中执行命令(pod 中有多个容器的情况下)kubectltoppodPOD_NAME-containers#显示指定 pod 和容器的指标度量kubectltopnodemy-node#显示 my-node 的指标度量kubectlcordonmy-node#标记 my-node 不可调度kubectldrainmy-node#清空 my-node 以待维护kubectluncordonmy-node#标记 my-node 可调度kubectlcluster-info#显

    22、示 master 和服务的地址kubectltaintnodesfoodedicated=special-user:NoScheduleKubernetesKubernetes运维经验运维经验节点notready,通过kubectlgetnodes查看节点状态KubernetesKubernetes运维经验运维经验Pod没有创建成功通过kubectldescribepod查看pod的event信息,能得知Pod当前的运行状态及创建过程中的异常信息。如果pod启动过程有异常,可能是pod内的程序产生了错误,使用kubectllogspod-name查看具体原因。KubernetesKubernetes运维经验运维经验Service域名不能访问(1)首先查看service中有无endpoint(2)进入容器执行nslookup检查域名能否解析(3)查看kube-proxy生成的iptables规则是否正确(4)用tcpdump抓包THANKYOU

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:技术分享k8s容器分享课件.pptx
    链接地址:https://www.163wenku.com/p-3327360.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库