20200115 k8s的原理

Docker:开源的容器引擎。

Images(Docker镜像)

Container(容器)容器是镜像的可运行实例。镜像和容器的关系有点类似于面向对象中,类和对象的关系。

Docker Registry是一个集中存储与分发镜像的服务。构建完Docker镜像后,就可在当前宿主机上运行。但如果想要在其他机器上运行这个镜像,就需要手动复制。此时可借助Docker Registry来避免镜像的手动复制。

一个Docker Registry(看作Maven仓库)可包含多个Docker仓库(看作jar包路径),每个仓库可包含多个镜像标签(看作jar包版本号),每个标签对应一个Dokcer镜像。

Docker Registry可分为公有(Docker Hub)和私有。

 

为什么需要 k8s?容器集群管理系统

应用部署模式的演进:虚拟化模式,容器化模式。容器内的应用程序进程直接运行在宿主机(真实物理机)的内核上.传统:虚拟出的虚拟机装操作系统、Docker:容器引擎管理下的容器。

相比虚拟机 1)容器更加轻量级,启动更快(秒级);2)容器可移植性更好。

微服务运行在容器中。把镜像运行在容器中。

管理大量的容器带来了新的挑战,容器编排调度引擎 k8s。

优势:简化应用部署;提高硬件资源利用率;健康检查和自修复;自动扩容缩容;服务发现和负载均衡。

k8s的集群架构1)主节点,承载 k8s 的控制和管理整个集群系统的控制面板;2)工作节点,运行用户实际的应用。

pod:k8s 调度的最小单元。

1)pod 相当与逻辑主机,每个 pod 都有自己的 IP 地址;

2)pod 内的容器共享相同的 IP 和端口空间;

3)默认情况下,每个容器的文件系统与其他容器完全隔离;

 

k8s是一个编排容器的工具,其实也是管理应用的生命周期的一个工具,从创建应用,应用的部署,应用提供服务,扩容缩容应用,应用更新,都非常的方便,而且可以做到故障自愈,例如一个服务器挂了,可以自动将这个服务器上的服务调度到另外一个主机上进行运行,无需进行人工干涉。

k8s可以更快的更新新版本,打包应用,更新的时候可以做到不用中断服务,服务器故障不用停机,从开发环境到测试环境到生产环境的迁移极其方便,一个配置文件搞定,一次生成image,到处运行。

 

k8s的全生命周期管理

在k8s进行管理应用的时候,基本步骤是:创建集群,部署应用,发布应用,扩展应用,更新应用。

 

1、创建集群:为什么要使用集群?( k8s集群 )

要想屏蔽底层的细节,增强可靠性和稳定性,从而需要创建集群。统一对外提供接口,无须进行各种复杂的调用。提供更好的性能,组合集群中各个机器的计算存储网络资源,提供更好的TPS和PS;提供横向扩容的能力,在进行横向扩容的时候,性能基本上能呈线性增长。

在k8s只要使用两条指令就可以创建一个集群,一个是kubectl init进行初始化,创建一个master节点,第二条指令就是kubectl join xxx创建一个node节点,加入这个集群。

在这边可以看到k8s在物理上进行划分的时候,划分了两种类型的主机,一个master节点,主要用来调度,控制集群的资源等功能;而node节点,主要是用来运行容器的节点,也就是运行服务的节点。

主节点和从结点的功能不同。 

其实集群都差不多,master用来控制,用来存储各种元数据,node节点是一个工作节点,真正来干活的;node节点定时与master进行通信,通过kubelet进程来汇报信息。

 

2、部署应用

使用集群的主要目标是啥?用来提供服务,让开发开发的应用程序能在集群上运行,从而需要让开发能运行一个应用来进行测试。

在开发完成程序之后,需要将程序打包成image,然后放到registry中,然后就能够运行应用了。

在k8s里面,集群调度的最小单元就是一个pod,一个pod可以是一个容器,也可以是多个容器,例如你运行一个程序,其中使用了nginx,使用mysql了,使用了jetty,那么可以将这三个使用在同一个pod中,对他们提供统一的调配能力,一个pod只能运行在一个主机上,而一个主机上可以有多个pod。

pod,相当于一个逻辑主机,还记得创建一个vm,在vm上运行几个进程么,其实道理是一样的,pod的存在主要是让几个紧密连接的几个容器之间共享资源,例如ip地址,共享存储等信息。如果直接调度容器的话,那么几个容器可能运行在不同的主机上,这样就增加了系统的复杂性。

 

3、发布应用

发布应用主要就是对外提供服务,可能会有人提出疑问,我都运行了服务,为什么还不能提供服务,这是因为在集群当中,创建的ip地址等资源,只有在同一个集群中才能访问,每个pod也有独一的ip地址,当有多个pod提供相同的服务的时候,就需要有负载均衡的能力,从而这里就涉及到一个概念就是service,专门用来提供服务的。

服务主要是用来提供外界访问的接口,服务可以关联一组pod,这些pod的ip地址各不相同,而service相当于一个复杂均衡的vip,用来指向各个pod,当pod的ip地址发生改变之后,也能做到自动进行负载均衡,在关联的时候,service和pod之间主要通过label来关联,也就是标签。

4、 扩容缩容。在业务上线之后,碰到了双十一怎么办?扩容。。。万剑归宗,只要有一个pod,那么就可以产生无数个pod。

 

k8s的基本入门,其实算是一种用户视角,只是用来演示如何使用k8s,怎么提高了生产力而已。

在给客户演示的时候,为啥要选择k8s?主要就是如何提高了发布的效率,更新版本的效率,更方便更快捷的上线新版本。舵手或飞行员.

 

我们用kubernetes去管理Docker集群,即可以将Docker看成Kubernetes内部使用的低级别组件。

 

Cluster 集群,Node 结点,结点分为主结点(master)和工作结点(worker)。Pod K8s中的工作单元,K8s是以Pod而非容器为单位排程的。Pod可以理解为Docker单机环境,每个Pod中包含一至多个容器,总是被启动在一个结点;一个Pod的容器在K8s集群中有相同的地址和端口范围,即容器暴露于K8s集群的端口号不可重复。

K8s集群由主结点和工作结点两类构成。

etcd 一款开源软件。提供可靠的分布式数据存储服务,用于持久化存储K8s集群的配置和状态。主要用于保存集群的配置和状态。

K8s API server:K8s其它组件之间不直接通信,而是通过API server通信的。例如,只有API server连接了etcd,即其它组件更新K8s集群的状态时,只能通过API server读写etcd中的数据。

Controller Manager 执行集群级别的功能,如复制组件、追踪工作结点状态、处理结点失败等。Controller Manager组件是由多个控制器组成的,其中很多控制器是按K8s的资源类型划分的,如Replication Manager(管理ReplicationController 资源),ReplicaSet Controller,PersistentVolume controller。

 

<p style="margin: 21px 0 21px 0;"><span style="color: red; font-size: 24px;">微服务是什么?</span></p> <p>微服务是用于构建应用程序的架构风格,一个大的系统可由一个或者多个微服务组成,微服务架构可将应用拆分成多个核心功能,每个功能都被称为一项服务,可以单独构建和部署,这意味着各项服务在工作和出现故障的时候不会相互影响。</p> <p style="margin: 21px 0 21px 0;"><span style="color: red; font-size: 24px;">为什么要用微服务?</span></p> <p style="text-align: left;">单体架构下的所有代码模块都耦合在一起,代码量大,维护困难,想要更新一个模块的代码,也可能会影响其他模块,不能很好的定制化代码。微服务中可以有java编写、有Python编写的,他们都是靠restful架构风格统一成一个系统的,所以微服务本身与具体技术无关、扩展性强。</p> <p style="margin: 21px 0 21px 0;"><span style="color: red; font-size: 24px;">大型电商平台微服务功能图</span></p> <p style="margin: 21px 0 21px 0;"><img src="https://img-bss.csdnimg.cn/202102041151592091.png" alt="" /></p> <p style="margin: 21px 0 21px 0;"><span style="color: red; font-size: 24px;">为什么要将SpringCloud项目部署到k8s平台?</span></p> <p>SpringCloud只能用在SpringBoot的java环境中,而kubernetes可以适用于任何开发语言,只要能被放进docker的应用,都可以在kubernetes上运行,而且更轻量,更简单。SpringCloud很多功能都跟kubernetes重合,比如服务发现,负载均衡,配置管理,所以如果把SpringCloud部署到k8s,那么很多功能可以直接使用k8s原生的,减少复杂度。</p> <p style="margin: 16px 0 16px 0;"><span style="font-size: 18px; font-family: '微软雅黑',sans-serif;">Kubernetes</span><span style="font-size: 18px; font-family: '微软雅黑',sans-serif;">作为成熟的容器编排工具,在国内外很多公司、世界500强等企业已经落地使用,很多中小型公司也开始把业务迁移到kubernetes中。kubernetes已经成为互联网行业急需的人才,很多企业都开始引进kubernetes技术人员,实现其内部的自动化容器云平台的建设。对于开发、测试、运维、架构师等技术人员来说k8s已经成为的一项重要的技能,下面列举了国内外在生产环境使用kubernetes的公司:</span></p> <p style="margin: 16px 0 16px 0;"> </p> <p style="margin: 16px 0 16px 0;"><strong><span style="font-size: 18px; font-family: '微软雅黑',sans-serif;">国内在用k8s的公司:</span></strong></p> <p style="margin: 16px 0 16px 0;"><span style="font-family: '微软雅黑',sans-serif;">阿里巴巴、百度、腾讯、京东、360、新浪、头条、知乎、华为、小米、富士康、移动、银行、电网、阿里云、青云、时速云、腾讯、优酷、抖音、快手、美团等</span></p> <p style="margin: 16px 0 16px 0;"><strong><span style="font-size: 18px; font-family: '微软雅黑',sans-serif;">国外在用k8s的公司:</span></strong></p> <p style="margin: 16px 0 16px 0;"><span style="font-size: 18px; font-family: '微软雅黑',sans-serif;">谷歌、IBM、丰田、iphone、微软、redhat等<br /></span><img src="https://img-bss.csdnimg.cn/202102041152363812.png" alt="" /></p> <p style="margin: 21px 0 21px 0;"><br />整个K8S体系涉及到的技术众多,包括存储、网络、安全、监控、日志、DevOps、微服务等,很多刚接触K8S的初学者,都会感到无从下手,为了能让大家系统地学习,克服这些技术难点,推出了这套K8S架构师课程。<br /><br /><span style="color: red; font-size: 24px;">Kubernetes的发展前景</span> <br />kubernetes作为炙手可热的技术,已经成为云计算领域获取高薪要掌握的重要技能,在招聘网站搜索k8s,薪资水平也非常可观,为了让大家能够了解k8s目前的薪资分布情况,下面列举一些K8S的招聘截图: <br /><br /></p> <p style="margin: 21px 0 21px 0;"><img src="https://img-bss.csdnimg.cn/202102041153009482.png" alt="" /></p> <p style="margin: 16px 0 16px 0;"><span style="color: #ff0000;"><strong><span style="font-size: 24px;">讲师介绍:  </span></strong></span><strong><span style="font-size: 24px; font-family: '微软雅黑',sans-serif;">先超</span></strong></p> <p style="margin: 8px 0 8px 0;"><span style="font-size: 18px; font-family: '微软雅黑',sans-serif;">容器云架构师、IT技术架构师、<span style="color: red;">DevOps</span><span style="color: red;">工程师</span>,曾<span style="color: red;">就职于世界500强上市公司</span>,拥有多年一线运维经验,主导过上亿流量的pv项目的架构设计和运维工作;具有<span style="color: red;">丰富的在线教育经验</span>,对课程一直在改进和提高、不断的更新和完善、开发更多的企业实战项目。所教<span style="color: red;">学员遍布京东、阿里、百度、电网等</span>大型企业和上市公司。</span></p> <p style="margin: 21px 0 21px 0;"><span style="color: red; font-size: 24px;">课程学习计划</span> <br />学习方式:视频录播+视频回放+全套源码笔记 <br />教学服务:模拟面试、就业指导、岗位内推、一对一答疑、远程指导 <br />VIP终身服务:一次购买,终身学习</p> <p style="margin: 16px 0 16px 0;"><span style="font-size: 24px; color: #ff0000;"><span style="font-size: 24px;">课程亮点:</span></span></p> <p><strong><span style="font-size: 18px; font-family: '微软雅黑',sans-serif;">1. </span></strong><strong><span style="font-size: 18px; font-family: '微软雅黑',sans-serif;">学习方式灵活,不占用工作时间:</span></strong></p> <p><span style="font-family: '微软雅黑',sans-serif;">可在电脑、手机观看,随时可以学习,不占用上班时间</span></p> <p><strong><span style="font-size: 18px; font-family: '微软雅黑',sans-serif;">2.</span></strong><strong><span style="font-size: 18px; font-family: '微软雅黑',sans-serif;">老师答疑及时:</span></strong></p> <p><span style="font-family: '微软雅黑',sans-serif;">老师24小时在线答疑</span></p> <p><strong><span style="font-size: 18px; font-family: '微软雅黑',sans-serif;">3. </span></strong><strong><span style="font-size: 18px; font-family: '微软雅黑',sans-serif;">知识点覆盖全、课程质量高</span></strong></p> <p><strong><span style="font-size: 18px; font-family: '微软雅黑',sans-serif;">4. </span></strong><strong><span style="font-size: 18px; font-family: '微软雅黑',sans-serif;">精益求精、不断改进</span></strong></p> <p><span style="font-family: '微软雅黑',sans-serif;">根据学员要求、随时更新课程内容</span></p> <p><strong><span style="font-size: 18px; font-family: '微软雅黑',sans-serif;">5. </span></strong><strong><span style="font-size: 18px; font-family: '微软雅黑',sans-serif;">适合范围广,不管你是0基础,还是拥有工作经验均可学习:</span></strong></p> <p><span style="font-family: '微软雅黑',sans-serif;">0</span><span style="font-family: '微软雅黑',sans-serif;">基础</span></p> <p><span style="font-family: '微软雅黑',sans-serif;">1-3</span><span style="font-family: '微软雅黑',sans-serif;">年工作经验</span></p> <p><span style="font-family: '微软雅黑',sans-serif;">3-5</span><span style="font-family: '微软雅黑',sans-serif;">年工作经验</span></p> <p><span style="font-family: '微软雅黑',sans-serif;">5</span><span style="font-family: '微软雅黑',sans-serif;">年以上工作经验</span></p> <p><span style="font-family: '微软雅黑',sans-serif;">运维、开发、测试、产品、前端、架构师</span></p> <p><span style="font-family: '微软雅黑',sans-serif;">其他行业转行做技术人员均可学习</span></p> <p><span style="font-family: 等线; color: red; font-size: 24px;">课程部分项目截图</span></p> <p><img src="https://img-bss.csdnimg.cn/202102041153266860.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102041153377287.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102041153463414.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102041153552293.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102041154101988.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102041154234342.png" alt="" /></p> <p><img src="https://img-bss.csdnimg.cn/202102041154348644.png" alt="" /></p> <p> </p> <p> </p> <p> </p> <p><span style="font-size: 24px; color: #ff0000;">课程大纲</span></p> <p> </p> <table> <tbody> <tr class="firstRow"> <td style="border: 1px solid windowtext; padding: 0px 7px;" valign="top" width="553"> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><strong><span style="font-size: 18px; font-family: 宋体;">k8s+SpringCloud</span></strong><strong><span style="font-size: 18px; font-family: 宋体;">全栈技术:基于世界500强的企业实战课程-大纲</span></strong></p> </td> </tr> <tr> <td style="border-color: currentcolor windowtext windowtext; border-style: none solid solid; border-width: medium 1px 1px; border-image: none 100% / 1 / 0 stretch; padding: 0px 7px;" valign="top" width="553"> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><strong><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">第一章 开班仪式</span></strong></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">老师自我介绍、课程大纲介绍、行业背景、发展趋势、市场行情、课程优势、薪资水平、给大家的职业规划、课程学习计划、岗位内推</span></p> </td> </tr> <tr> <td style="border-color: currentcolor windowtext windowtext; border-style: none solid solid; border-width: medium 1px 1px; border-image: none 100% / 1 / 0 stretch; padding: 0px 7px;" valign="top" width="553"> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><strong><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">第二章 kubernetes介绍</span></strong></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">Kubernetes</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">简介</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">kubernetes</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">起源和发展</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">kubernetes</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">优点</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">kubernetes</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">功能</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">kubernetes</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">应用领域:在大数据、5G、区块链、DevOps、AI等领域的应用</span></p> </td> </tr> <tr> <td style="border-color: currentcolor windowtext windowtext; border-style: none solid solid; border-width: medium 1px 1px; border-image: none 100% / 1 / 0 stretch; padding: 0px 7px;" valign="top" width="553"> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><strong><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">第三章  kubernetes中的资源对象</span></strong></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">最小调度单元Pod</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">标签Label和标签选择器</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">控制器Replicaset、Deployment、Statefulset、Daemonset等</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">四层负载均衡器Service</span></p> </td> </tr> <tr> <td style="border-color: currentcolor windowtext windowtext; border-style: none solid solid; border-width: medium 1px 1px; border-image: none 100% / 1 / 0 stretch; padding: 0px 7px;" valign="top" width="553"> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><strong><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">第四章 kubernetes架构和组件</span></strong></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">熟悉谷歌的Borg架构</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">kubernetes</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">单master节点架构</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">kubernetes</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">多master节点高可用架构</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">kubernetes</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">多层架构设计原理</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">kubernetes API</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">介绍</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">master</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">(控制)节点组件:apiserver、scheduler、controller-manager、etcd</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">node</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">(工作)节点组件:kube-proxy、coredns、calico</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">附加组件:prometheus、dashboard、metrics-server、efk、HPA、VPA、Descheduler、Flannel、cAdvisor、Ingress     Controller。</span></p> </td> </tr> <tr> <td style="border-color: currentcolor windowtext windowtext; border-style: none solid solid; border-width: medium 1px 1px; border-image: none 100% / 1 / 0 stretch; padding: 0px 7px;" valign="top" width="553"> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><strong><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">第五章 部署多master节点的K8S高可用集群(kubeadm)</span></strong></p> </td> </tr> <tr> <td style="border-color: currentcolor windowtext windowtext; border-style: none solid solid; border-width: medium 1px 1px; border-image: none 100% / 1 / 0 stretch; padding: 0px 7px;" valign="top" width="553"> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><strong><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">第六章 带你体验kubernetes可视化界面dashboard</span></strong></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">在kubernetes中部署dashboard</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">通过token令牌登陆dashboard</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">通过kubeconfig登陆dashboard</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">限制dashboard的用户权限</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">在dashboard界面部署Web服务</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">在dashboard界面部署redis服务</span></p> </td> </tr> <tr> <td style="border-color: currentcolor windowtext windowtext; border-style: none solid solid; border-width: medium 1px 1px; border-image: none 100% / 1 / 0 stretch; padding: 0px 7px;" valign="top" width="553"> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><strong><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">第七章 资源清单YAML文件编写技巧</span></strong></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">编写YAML文件常用字段,YAML文件编写技巧,kubectl explain查看帮助命令,手把手教你创建一个Pod的YAML文件</span></p> </td> </tr> <tr> <td style="border-color: currentcolor windowtext windowtext; border-style: none solid solid; border-width: medium 1px 1px; border-image: none 100% / 1 / 0 stretch; padding: 0px 7px;" valign="top" width="553"> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><strong><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">第八章 通过资源清单YAML文件部署tomcat站点</span></strong></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">编写tomcat的资源清单YAML文件、创建service发布应用、通过HTTP、HTTPS访问tomcat</span></p> </td> </tr> <tr> <td style="border-color: currentcolor windowtext windowtext; border-style: none solid solid; border-width: medium 1px 1px; border-image: none 100% / 1 / 0 stretch; padding: 0px 7px;" valign="top" width="553"> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><strong><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">第九章  kubernetes Ingress发布服务</span></strong></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">Ingress</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">和Ingress Controller概述</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">Ingress</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">和Servcie关系</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">安装Nginx Ingress Controller</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">安装Traefik Ingress Controller</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">使用Ingress发布k8s服务</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">Ingress</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">代理HTTP/HTTPS服务</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">Ingress</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">实现应用的灰度发布-可按百分比、按流量分发</span></p> </td> </tr> <tr> <td style="border-color: currentcolor windowtext windowtext; border-style: none solid solid; border-width: medium 1px 1px; border-image: none 100% / 1 / 0 stretch; padding: 0px 7px;" valign="top" width="553"> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><strong><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">第十章 私有镜像仓库Harbor安装和配置</span></strong></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">Harbor</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">简介</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">安装Harbor</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">Harbor UI</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">界面使用</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">上传镜像到Harbor仓库</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">从Harbor仓库下载镜像</span></p> </td> </tr> <tr> <td style="border-color: currentcolor windowtext windowtext; border-style: none solid solid; border-width: medium 1px 1px; border-image: none 100% / 1 / 0 stretch; padding: 0px 7px;" valign="top" width="553"> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><strong><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">第十一章 微服务概述</span></strong></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">什么是微服务?</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">为什么要用微服务?</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">微服务的特性</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">什么样的项目适合微服务?</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">使用微服务需要考虑的问题</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">常见的微服务框架</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">常见的微服务框架对比分析</span></p> </td> </tr> <tr> <td style="border-color: currentcolor windowtext windowtext; border-style: none solid solid; border-width: medium 1px 1px; border-image: none 100% / 1 / 0 stretch; padding: 0px 7px;" valign="top" width="553"> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><strong><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">第十二章 SpringCloud概述</span></strong></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">SpringCloud</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">是什么?</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">SpringCloud</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">和SpringBoot什么关系?</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">SpringCloud</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">微服务框架的优缺点</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">SpringCloud</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">项目部署到k8s的流程</span></p> </td> </tr> <tr> <td style="border-color: currentcolor windowtext windowtext; border-style: none solid solid; border-width: medium 1px 1px; border-image: none 100% / 1 / 0 stretch; padding: 0px 7px;" valign="top" width="553"> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><strong><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">第十三章 SpringCloud组件介绍</span></strong></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">服务注册与发现组件Eureka</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">客户端负载均衡组件Ribbon</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">服务网关Zuul</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">熔断器Hystrix</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">API</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">网关SpringCloud Gateway</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">配置中心SpringCloud Config</span></p> </td> </tr> <tr> <td style="border-color: currentcolor windowtext windowtext; border-style: none solid solid; border-width: medium 1px 1px; border-image: none 100% / 1 / 0 stretch; padding: 0px 7px;" valign="top" width="553"> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><strong><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">第十四章 将SpringCloud项目部署到k8s平台的注意事项</span></strong></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">如何进行服务发现?</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">如何进行配置管理?</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">如何进行负载均衡?</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">如何对外发布服务?</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">k8s</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">部署SpringCloud项目的整体流程</span></p> </td> </tr> <tr> <td style="border-color: currentcolor windowtext windowtext; border-style: none solid solid; border-width: medium 1px 1px; border-image: none 100% / 1 / 0 stretch; padding: 0px 7px;" valign="top" width="553"> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><strong><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">第十五章 部署MySQL数据库</span></strong></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">MySQL</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">简介</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">MySQL</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">特点</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">安装部署MySQL</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">在MySQL数据库导入数据</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">对MySQL数据库授权</span></p> </td> </tr> <tr> <td style="border-color: currentcolor windowtext windowtext; border-style: none solid solid; border-width: medium 1px 1px; border-image: none 100% / 1 / 0 stretch; padding: 0px 7px;" valign="top" width="553"> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><strong><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">第十六章 将SpringCLoud项目部署到k8s平台</span></strong></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">SpringCloud</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">的微服务电商框架</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">安装openjdk和maven</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">修改源代码、更改数据库连接地址</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">通过Maven编译、构建、打包源代码</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">在k8s中部署Eureka组件</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">在k8s中部署Gateway组件</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">在k8s中部署前端服务</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">在k8s中部署订单服务</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">在k8s中部署产品服务</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">在k8s中部署库存服务</span></p> </td> </tr> <tr> <td style="border-color: currentcolor windowtext windowtext; border-style: none solid solid; border-width: medium 1px 1px; border-image: none 100% / 1 / 0 stretch; padding: 0px 7px;" valign="top" width="553"> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><strong><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">第十七章 微服务的扩容和缩容</span></strong></p> </td> </tr> <tr> <td style="border-color: currentcolor windowtext windowtext; border-style: none solid solid; border-width: medium 1px 1px; border-image: none 100% / 1 / 0 stretch; padding: 0px 7px;" valign="top" width="553"> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><strong><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">第十八章 微服务的全链路监控</span></strong></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">什么是全链路监控?</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">为什么要进行全链路监控?</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">全链路监控能解决哪些问题?</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">常见的全链路监控工具:zipkin、skywalking、pinpoint</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">全链路监控工具对比分析</span></p> </td> </tr> <tr> <td style="border-color: currentcolor windowtext windowtext; border-style: none solid solid; border-width: medium 1px 1px; border-image: none 100% / 1 / 0 stretch; padding: 0px 7px;" valign="top" width="553"> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><strong><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">第十九章 部署pinpoint服务</span></strong></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">部署pinpoint</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">部署pinpoint agent</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">在k8s中重新部署带pinpoint agent的产品服务</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">在k8s中重新部署带pinpoint agent的订单服务</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">在k8s中重新部署带pinpoint agent的库存服务</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">在k8s中重新部署带pinpoint agent的前端服务</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">在k8s中重新部署带pinpoint agent的网关和eureka服务</span></p> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">Pinpoint UI</span><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">界面使用</span></p> </td> </tr> <tr> <td style="border-color: currentcolor windowtext windowtext; border-style: none solid solid; border-width: medium 1px 1px; border-image: none 100% / 1 / 0 stretch; padding: 0px 7px;" valign="top" width="553"> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><strong><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">第二十章 基于Jenkins+k8s+harbor等构建企业级DevOps平台</span></strong></p> </td> </tr> <tr> <td style="border-color: currentcolor windowtext windowtext; border-style: none solid solid; border-width: medium 1px 1px; border-image: none 100% / 1 / 0 stretch; padding: 0px 7px;" valign="top" width="553"> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><strong><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">第二十一章 基于Promethues+Alert+Grafana搭建企业级监控系统</span></strong></p> </td> </tr> <tr> <td style="border-color: currentcolor windowtext windowtext; border-style: none solid solid; border-width: medium 1px 1px; border-image: none 100% / 1 / 0 stretch; padding: 0px 7px; word-break: break-all;" valign="top" width="553"> <p style="margin-top: auto; margin-bottom: auto; text-align: left;"><strong><span style="font-size: 16px; font-family: '微软雅黑',sans-serif;">第二十二章 部署智能化日志收集系统EFK</span></strong></p> </td> </tr> </tbody> </table> <p><span style="font-size: 24px; color: #ff0000;"> </span></p>
相关推荐
<p> <span style="color:#333333;">最近的三年多时间,随着容器技术的火爆及Kubernetes成为容器编排管理的标准,国内外厂商均已开始了全面拥抱Kubernetes的转型, 无数中小型企业已经落地 Kubernetes,或正走在容器化的道路上 。</span> </p> <p> <span style="color:#333333;"><br /></span> </p> <p> <span style="color:#333333;">第一章</span> </p> <p> <span style="color:#333333;">介绍docker的前世今生,了 解docker的实现原理,以Django项目为例,教大家如何编写最佳的Dockerfile实现构业务镜像的制作。通过本章的学习,大家会知道docker的概念及基本操作,并学会构建自己的业务镜像,并通过抓包的方式掌握Docker最常用的bridge网络模式的通信。<br /></span> </p> <p> <span style="color:#333333;"><br /></span> </p> <p> <span style="color:#333333;">第二章</span> </p> <p> 本章学习kubernetes的架构及工作流程,重点介绍如本章学习kubernetes的架构及工作流程,重点介绍如断的滚动更新,通过服务发现来实现集群内部的服务间访问,并通过ingress- -nginx实现外部使用域名访问集群内部的服务。同时介绍基于EFK如何搭建Kubernetes集群的日志收集系统。 </p> <p> <br /> 学完本章,我们的Django demo项目已经可以运行在k8s集群中,同时我们可以使用域名进行服务的访问。 </p> <p> <br /></p> <p> 第三章 </p> <p> 本章基于k8s集群部署gitlab、sonarQube、 Jenkins等工具,并把上述工具集成到Jenkins中,以Django项目为例,通过多分支流水线及Jenkinsfle实现项目代码提交到不同的仓库分支,实现自动代码扫描、单元测试、docker容器构建、k8s服务的自动部署。 </p> <p> <br /></p> <p> 第四章 </p> <p> 由于公司内部项目众多,大量的项目使用同一套流程做CICD,那么势必会存在大量的重复代码,因此本章主要通过使用groovy实现Jenkins的sharedL ibrary的开发,以提取项目在CICD实践过程中的公共逻辑,提供一系列的流程的接口供公司内各项目调用,开发完成后,还是以Django的demo项目为例,进行Jenkinsfle的改造,最后仅需通过简单的Jenkinsfle的配置,即可优雅的完成CICD流程的整个过程,此方式已在大型企业内部落地应用。<br /></p>
<p> <b><span style="font-size:14px;"></span><span style="font-size:14px;background-color:#FFE500;">【Java面试宝典】</span></b><br /> <span style="font-size:14px;">1、68讲视频课,500道大厂Java常见面试题+100个Java面试技巧与答题公式+10万字核心知识解析+授课老师1对1面试指导+无限次回放</span><br /> <span style="font-size:14px;">2、这门课程基于胡书敏老师8年Java面试经验,调研近百家互联网公司及面试官的问题打造而成,从筛选简历和面试官角度,给出能帮助候选人能面试成功的面试技巧。</span><br /> <span style="font-size:14px;">3、通过学习这门课程,你能系统掌握Java核心、数据库、Java框架、分布式组件、Java简历准备、面试实战技巧等面试必考知识点。</span><br /> <span style="font-size:14px;">4、知识点+项目经验案例,每一个都能做为面试的作品展现。</span><br /> <span style="font-size:14px;">5、本课程已经在线下的培训课程中经过实际检验,老师每次培训结束后,都能帮助同学们运用面试技巧,成功找到更好的工作。</span><br /> <br /> <span style="font-size:14px;background-color:#FFE500;"><b>【超人气讲师】</b></span><br /> <span style="font-size:14px;">胡书敏 | 10年大厂工作经验,8年Java面试官经验,5年线下Java职业培训经验,5年架构师经验</span><br /> <br /> <span style="font-size:14px;background-color:#FFE500;"><b>【报名须知】</b></span><br /> <span style="font-size:14px;">上课模式是什么?</span><br /> <span style="font-size:14px;">课程采取录播模式,课程永久有效,可无限次观看</span><br /> <span style="font-size:14px;">课件、课程案例代码完全开放给你,你可以根据所学知识,自行修改、优化</span><br /> <br /> <br /> <span style="font-size:14px;background-color:#FFE500;"><strong>如何开始学习?</strong></span><br /> <span style="font-size:14px;">PC端:报名成功后可以直接进入课程学习</span><br /> <span style="font-size:14px;">移动端:<span style="font-family:Helvetica;font-size:14px;background-color:#FFFFFF;">CSDN 学院APP(注意不是CSDN APP哦)</span></span> </p>
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页