Kubernetes + Spring Cloud 集成链路追踪 SkyWalking

功能测试 同时被 2 个专栏收录
3 篇文章 0 订阅
62 篇文章 12 订阅

一、概述

1、什么是 SkyWalking ?

分布式系统的应用程序性能监视工具,专为微服务、云原生架构和基于容器(Docker、K8s、Mesos)架构而设计。提供分布式追踪、服务网格遥测分析、度量聚合和可视化一体化解决方案。

官网地址:http://skywalking.apache.org/

2、SkyWalking 特性

  • 多种监控手段,语言探针和 Service Mesh

  • 多语言自动探针,Java,.NET Core和Node.JS

  • 轻量高效,不需要大数据

  • 模块化,UI、存储、集群管理多种机制可选

  • 支持告警

  • 优秀的可视化方案

3、整体结构

图片整个架构,分成上、下、左、右四部分:

考虑到让描述更简单,我们舍弃掉 Metric 指标相关,而着重在 Tracing 链路相关功能。

  • 上部分 Agent :负责从应用中,收集链路信息,发送给 SkyWalking OAP 服务器。目前支持 SkyWalking、Zikpin、Jaeger 等提供的 Tracing 数据信息。而我们目前采用的是,SkyWalking Agent 收集 SkyWalking Tracing数据,传递给服务器。

  • 下部分 SkyWalking OAP :负责接收 Agent 发送的 Tracing 数据信息,然后进行分析(Analysis Core) ,存储到外部存储器( Storage ),最终提供查询( Query)功能。

  • 右部分 Storage :Tracing 数据存储。目前支持 ES、MySQL、Sharding Sphere、TiDB、H2 多种存储器。而我们目前采用的是 ES ,主要考虑是 SkyWalking 开发团队自己的生产环境采用 ES 为主。

  • 左部分 SkyWalking UI :负责提供控台,查看链路等等

简单概况原理为下图:图片

二、搭建 skywalking

1、环境准备

  • Mkubernetes 版本:1.18.5

  • Nginx Ingress 版本:2.2.8

  • Helm 版本:3.2.4

  • 持久化存储驱动:NFS

2、使用 chart 部署

本文主要讲述的是如何使用 Helm Charts 将 SkyWalking 部署到 Kubernetes 集群中,相关文档可以参考skywalking-kubernetes

目前推荐的四种方式:

  • 使用 helm 3 提供的 helm serve 启动本地 helm repo

  • 使用本地 chart 文件部署

  • 使用 harbor 提供的 repo 功能

  • 直接从官方 repo 进行部署(暂不满足)

注意:目前 skywalking 的 chart 还没有提交到官方仓库,请先参照前三种方式进行部署

2.1、 下载 chart 文件

可以直接使用本地文件部署 skywalking,按照上面的步骤将skywalking chart下载完成之后,直接使用以下命令进行部署:

git clone https://github.com/apache/skywalking-kubernetes
cd skywalking-kubernetes/chart
helm repo add elastic https://helm.elastic.co
helm dep up skywalking
export SKYWALKING_RELEASE_NAME=skywalking  # 定义自己的名称
export SKYWALKING_RELEASE_NAMESPACE=default  # 定义自己的命名空间

2.2、定义已存在es参数文件

修改values-my-es.yaml:

oap:
  image:
    tag: 8.1.0-es7      # Set the right tag according to the existing Elasticsearch version
  storageType: elasticsearch7

ui:
  image:
    tag: 8.1.0

elasticsearch:
  enabled: false
  config:               # For users of an existing elasticsearch cluster,takes effect when `elasticsearch.enabled` is false
    host: elasticsearch-client
    port:
      http: 9200
    user: "elastic"         # [optional]
    password: "admin@123"     # [optional]

2.3、helm 安装

helm install "${SKYWALKING_RELEASE_NAME}" skywalking -n "${SKYWALKING_RELEASE_NAMESPACE}" \
  -f ./skywalking/values-my-es.yaml

安装完成后,我们核实下安装情况:

$ kubectl get deployment -n skywalking
NAME                READY   UP-TO-DATE   AVAILABLE   AGE
my-skywalking-oap   2/2     2            2           9m
my-skywalking-ui    1/1     1            1           9m

三、使用 Skywalking Agent

Java 中使用 agent ,提供了以下三种方式供你选择

  • 使用官方提供的基础镜像

  • 将 agent 包构建到已经存在的基础镜像中

  • sidecar 模式挂载 agent(推荐)

1、使用官方提供的基础镜像

查看官方 docker hub 提供的基础镜像,只需要在你构建服务镜像是 From 这个镜像即可,直接集成到 Jenkins 中可以更加方便

2、将 agent 包构建到已经存在的基础镜像中

提供这种方式的原因是:官方的镜像属于精简镜像,并且是 openjdk ,可能很多命令没有,需要自己二次安装,这里略过。

3、sidecar 模式挂载 agent

由于服务是部署在 Kubernetes 中,使用这种方式来使用 Skywalking Agent ,这种方式的好处在不需要修改原来的基础镜像,也不用重新构建新的服务镜像,而是以sidecar 模式,通过共享 volume 的方式将 agent 所需的相关文件挂载到已经存在的服务镜像中。

3.1、构建 skywalking agent image

自己构建,参考:https://hub.docker.com/r/prophet/skywalking-agent

通过以下 dockerfile 进行构建:

FROM alpine:3.8

LABEL maintainer="zuozewei@hotmail.com"

ENV SKYWALKING_VERSION=8.1.0

ADD http://mirrors.tuna.tsinghua.edu.cn/apache/skywalking/${SKYWALKING_VERSION}/apache-skywalking-apm-${SKYWALKING_VERSION}.tar.gz /

RUN tar -zxvf /apache-skywalking-apm-${SKYWALKING_VERSION}.tar.gz && \
    mv apache-skywalking-apm-bin skywalking && \
    mv /skywalking/agent/optional-plugins/apm-trace-ignore-plugin* /skywalking/agent/plugins/ && \
    echo -e "\n# Ignore Path" >> /skywalking/agent/config/agent.config && \
    echo "# see https://github.com/apache/skywalking/blob/v8.1.0/docs/en/setup/service-agent/java-agent/agent-optional-plugins/trace-ignore-plugin.md" >> /skywalking/agent/config/agent.config && \
    echo 'trace.ignore_path=${SW_IGNORE_PATH:/health}' >> /skywalking/agent/config/agent.config
docker build -t 172.16.106.237/monitor/skywalking-agent:8.1.0 .

待 docker build 完毕后,push 到仓库即可。

3.2、使用 sidecar 挂载

示例配置文件如下:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: demo-skywalking
spec:
  replicas: 1
  selector:
    matchLabels:
      app: demo-skywalking
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: demo-skywalking
    spec:
      initContainers:
        - name: init-skywalking-agent
          image: 172.16.106.237/monitor/skywalking-agent:8.1.0
          command:
            - 'sh'
            - '-c'
            - 'set -ex;mkdir -p /vmskywalking/agent;cp -r /skywalking/agent/* /vmskywalking/agent;'
          volumeMounts:
            - mountPath: /vmskywalking/agent
              name: skywalking-agent
      containers:
        - image: nginx:1.7.9
          imagePullPolicy: Always
          name: nginx
          ports:
            - containerPort: 80
              protocol: TCP
          volumeMounts:
            - mountPath: /opt/skywalking/agent
              name: skywalking-agent
      volumes:
        - name: skywalking-agent
          emptyDir: {}

以上是挂载 sidecar 的 deployment.yaml 文件,以 nginx 作为服务为例,主要是通过共享 volume 的方式挂载 agent,首先 initContainers 通过 skywalking-agent 卷挂载了 sw-agent-sidecar 中的 /vmskywalking/agent,并且将上面构建好的镜像中的 agent 目录 cp 到了 /vmskywalking/agent 目录,完成之后 nginx 启动时也挂载了 skywalking-agent 卷,并将其挂载到了容器的 /opt/skywalking/agent 目录,这样就完成了共享过程。

四、改造 Spring Cloud 应用

1、docker打包并推送到仓库

修改下 dockerfile 配置,集成 skywalking agent:

FROM insideo/centos7-java8-build
VOLUME /tmp
ADD mall-admin.jar app.jar
RUN bash -c 'touch /app.jar'
RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime && echo Asia/Shanghai > /etc/timezone
ENTRYPOINT ["java","-Dapp.id=svc-mall-admin","-javaagent:/opt/skywalking/agent/skywalking-agent.jar","-Dskywalking.agent.service_name=svc-mall-admin","-Dskywalking.collector.backend_service=my-skywalking-oap.skywalking.svc.cluster.local:11800","-jar","-Dspring.profiles.active=prod","-Djava.security.egd=file:/dev/./urandom","/app.jar"]

改好了,直接运行 maven package 就能将这个项目打包成镜像。

注意:

k8s 创建 Service 时,它会创建相应的 DNS 条目。此条目的格式为 <service-name>.<namespace-name>.svc.cluster.local,这意味着如果容器只使用<service-name>,它将解析为本地服务到命名空间。如果要跨命名空间访问,则需要使用完全限定的域名。

2、编写 k8s的yaml版本的部署脚本

这里我以其中某服务举例:

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: svc-mall-admin
spec:
  replicas: 1
  selector:
    matchLabels:
      app: svc-mall-admin
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 0
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: svc-mall-admin
    spec:
      initContainers:
        - name: init-skywalking-agent
          image: 172.16.106.237/monitor/skywalking-agent:8.1.0
          command:
            - 'sh'
            - '-c'
            - 'set -ex;mkdir -p /vmskywalking/agent;cp -r /skywalking/agent/* /vmskywalking/agent;'
          volumeMounts:
            - mountPath: /vmskywalking/agent
              name: skywalking-agent
      containers:
        - image: 172.16.106.237/mall_repo/mall-admin:1.0
          imagePullPolicy: Always
          name: mall-admin
          ports:
            - containerPort: 8180
              protocol: TCP
          volumeMounts:
            - mountPath: /opt/skywalking/agent
              name: skywalking-agent
      volumes:
        - name: skywalking-agent
          emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
  name: svc-mall-admin
spec:
  ports:
    - name: http
      port: 8180
      protocol: TCP
      targetPort: 8180
  selector:
    app: svc-mall-admin

然后就可以直接运行了,它就可以将的项目全部跑起来了。

五、测试验证

完事,可以去 SkyWalking UI 查看是否链路收集成功。

1、 测试应用 API

首先,请求下 Spring Cloud 应用提供的 API。因为,我们要追踪下该链路。图片

2、 查看 SkyWalking UI 界面

图片

在这里插入图片描述

这里,我们会看到 SkyWalking 中非常重要的三个概念:

  • 服务(Service) :表示对请求提供相同行为的一系列或一组工作负载。在使用 Agent 或 SDK 的时候,你可以定义服务的名字。如果不定义的话,SkyWalking 将会使用你在平台(例如说 Istio)上定义的名字。这里,我们可以看到 Spring Cloud  应用的服务为 svc-mall-admin,就是我们在 agent 环境变量  service_name 中所定义的。

  • 服务实例(Service Instance) :上述的一组工作负载中的每一个工作负载称为一个实例。就像 Kubernetes 中的 pods 一样, 服务实例未必就是操作系统上的一个进程。但当你在使用 Agent 的时候, 一个服务实例实际就是操作系统上的一个真实进程。这里,我们可以看到 Spring Cloud  应用的服务为 UUID@hostname,由  Agent 自动生成。

  • 端点(Endpoint) :对于特定服务所接收的请求路径, 如 HTTP 的 URI 路径和 gRPC 服务的类名 + 方法签名。

这里,我们可以看到 Spring Cloud 应用的一个端点,为  API 接口 /mall-admin/admin/login

更多 agent 参数介绍参考:https://github.com/apache/skywalking/blob/v8.1.0/docs/en/setup/service-agent/java-agent/README.md

点击「拓扑图」菜单,进入查看拓扑图的界面:图片点击「追踪」菜单,进入查看链路数据的界面:图片

六、小结

本文详细介绍了如何使用 Kubernetes + Spring Cloud 集成 SkyWalking,顺便说下调用链监控在目前的微服务系统里面是必不可少的组件,分布式追踪、服务网格遥测分析、度量聚合和可视化还是挺好用的,这里我们选择了 Skywalking,具体原因和细节的玩法就不在此详述了。

  • 1
    点赞
  • 3
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

<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>
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值