K8S - 架构、常用K8S命令、yaml资源清单部署、Ingress、故障排查、存储卷

K8S

  • K8S官网文档:https://kubernetes.io/zh/docs/home/
  • 学习东西还是要从官方文档入手;
  • 用于管理、扩展、自动部署容器; 其实就是 对多个跨机器的Docker集群;

K8S特性

  • 服务发现和负载均衡
    Kubernetes 可以使用 DNS 名称或自己的 IP 地址来暴露容器。 如果进入容器的流量很大, Kubernetes 可以负载均衡并分配网络流量,从而使部署稳定。
  • 自动部署和回滚
    创建新容器, 删除现有容器并将它们的所有资源用于新容器。
  • 自我修复
    Kubernetes 将重新启动失败的容器、替换容器、杀死不响应用户定义的运行状况检查的容器, 并且在准备好服务之前不将其通告给客户端。

Docker编排常用命令

K8S 的核心功能:自动化运维管理多个容器化程序;
K8S架构图
核心架构角色:

  • kube-apiserver
    负责公开了 Kubernetes API,负责处理接受请求的工作;

  • etcd
    分布式数据库;一致且高可用的键值存储,用作 Kubernetes 所有集群数据的后台数据库。需要保证高可用、避免单点故障;

  • kube-scheduler

    • 分布式调度器;用来调度在指定节点上创建pod;
    • 调度决策考虑的因素包括单个 Pod 及 Pods 集合的资源需求、软硬件及策略约束、工作负载;简单可以理解为选择空闲的机器创建pod;
  • kube-controller-manager

    • 节点控制器(Node Controller):负责在节点出现故障时进行通知和响应
    • 任务控制器(Job Controller):监测代表一次性任务的 Job 对象,然后创建 Pods 来运行这些任务直至完成
    • 还有其他控制器、暂时不涉及;
  • kubelet

    • Worker Node 的监视器,以及与 Master Node 的通讯器
    • kubelet 会在集群中每个节点(node)上运行。 它保证容器(containers)都运行在 Pod 中。
    • 会向Master node汇报自身node服务运行的状态;并接受来自 Master Node 的指示采取调整措施
    • kubelet 只管理由 Kubernetes 创建的容器。
  • kube-proxy

    • kube-proxy 是集群中每个节点(node)上所运行的网络代理, 负责 Node 在 K8S 的网络通讯
  • Container Runtime

    • Worker Node 的运行环境 ,负责运行容器的软件。例如Docker Engine引擎;

简单命令执行流程

当我们执行创建Ngnix的容器时、执行以下K8S命令

kubectl create deployment nginx --image=nginx

命令的执行流程如下:

  1. API Server收到命令请求;
  2. API Server将命令交给Controller Manager 、CM生成应用部署记录;
  3. CM调用 API Server 将 应用部署记录 存入 etcd数据库;
  4. Scheduler调度器 定时调用 API Server 查询 etcd,获取到应用部署记录 与 worker node运行情况、 根据调度算法 决定 要在哪台node上部署应用;
  5. Scheduler 调用 API Server将调度结果记录放入etcd数据;
  6. 每个worker node的Kubelet 定时与 Master Node API Server 保持心跳与通信、获取到etcd中的调度结果记录, 每个节点判断是否要在本机上部署、 是则创建Pod、并随时汇报Pod运行情况;
  7. 每一个机器上的kube-proxy能知道集群的所有网络,只要node访问别人或者别人访问node,node上的kube-proxy网络代理自动计算进行流量转发

kubectl命令使用

语法:

kubectl [command] [TYPE] [NAME] [flags]

  • command :操作类型、例如 create、get、describe、delete
  • TYPE: 资源类型、 资源类型不区分大小写;
  • NAME: 指定资源的名称。名称区分大小写。 如果省略名称,则显示所有资源的详细信息。例如:kubectl get pod

你需要帮助,在终端窗口中运行 kubectl help

创建一个Tomcat应用程序

kubectl create deployment my-tomcat --image=tomcat:7.0.75-alpine

查询部署信息

kubectl get deployment

在这里插入图片描述
获取pod信息

kubectl get pod -o wide

在这里插入图片描述
根据name查询pod信息

kubectl get pod my-tomcat -o wide

查看容器日志

kubectl logs my-tomcat-685b8fd9c9-rw42d(pod名称)

使用 exec 可以在Pod的容器中执行命令,这里使用 env 命令查看环境变量

kubectl exec my-tomcat-685b8fd9c9-rw42d – env
kubectl exec my-tomcat-685b8fd9c9-rw42d – ls / # 查看容器的根目录下面内容

在这里插入图片描述
进入Pod容器内部并执行bash命令,如果想退出容器可以使用exit命令

kubectl exec -it my-tomcat-685b8fd9c9-rw42d – sh

访问一下这个tomcat pod
集群内访问(在集群里任一worker节点都可以访问)

curl 10.244.36.69:8080

在这里插入图片描述
集群外部访问
在这里插入图片描述

K8S中、将服务暴露到外网访问、需要使用service;

kubectl expose deployment my-tomcat --name=tomcat --port=8080 --type=NodePort

查看service

kubectl get svc -o wide
svc 是 service简写

在这里插入图片描述
K8S的service服务端口号为8080, 宿主机映射的随机端口为32224, 因此可通过 集群工作节点IP : 随机端口 访问
在这里插入图片描述
service服务有个特点,如果端口暴露类型为NodePort,那么可以通过集群内所有worker主机加暴露的端口进行访问

删除Pod:

  1. 查看 pod运行情况、 -w代表一直等待、可查看变化;类似tail -f 命令

#查看pod信息,-w意思是一直等待观察pod信息的变动
kubectl get pod -w

  1. 开另外一个命令窗口执行删除命令、 并观察1中的内容变化;

kubectl delete pod my-tomcat-685b8fd9c9-rw42d

在这里插入图片描述
3. 重启了一个Pod;

这意味着、每次执行del都会重新创建运行Pod, 相当于是Pod重启命令、 也是 K8S的核心特性、服务自愈;

  1. 查看下deployment和service的状态

kubectl get pod,svc

在这里插入图片描述

  1. 查看服务运行情况, 还是可以访问成功;
    在这里插入图片描述

服务扩缩容

  1. 执行scale扩容

kubectl scale --replicas=5 deployment my-tomcat

  1. 查看pod

在这里插入图片描述
3. 执行scale缩容

kubectl scale --replicas=3 deployment my-tomcat

滚动升级与回滚
对my-tomcat这个deployment进行滚动升级和回滚,将tomcat版本由tomcat:7.0.75-alpine升级到tomcat:8.0.41-jre8-alpine,再回滚到tomcat:7.0.75-alpine

  1. 滚动升级:
    使用set image设置镜像

kubectl set image deployement my-tomcat tomcat= tomcat:8.0.41-jre8-alpine

  1. 执行 kubectl get pod -w 观察pod的变动情况,可以看到有的pod在销毁,有的pod在创建

在这里插入图片描述

  1. 查看pod信息
    在这里插入图片描述
  2. 查看某个pod的详细信息

kubectl describe pod my-tomcat-547db86547-4btmd

在这里插入图片描述
镜像已经升级了;
5. 访问下tomcat
在这里插入图片描述

  1. 版本回滚
  2. 查看历史版本

kubectl rollout history deploy my-tomcat

在这里插入图片描述

  1. 回滚到上一个版本

kubectl rollout undo deployment my-tomcat #–to-revision 参数可以指定回退的版本

  1. 再次访问tomcat,发现版本已经回退
    在这里插入图片描述

标签的使用
通过给资源添加Label,可以方便地管理资源(如Deployment、Pod、Service等)。

  1. 查看Deployment中所包含的Label

kubectl subscribe deployment my-tomcat

在这里插入图片描述

  1. 通过Label查询Pod

kubectl get pod -l app=my-tomcat

在这里插入图片描述
4. 通过Label查询Service

kubectl get service -l app=my-tomcat

在这里插入图片描述
5. 给Pod添加Label

kubectl label pod my-tomcat-685b8fd9c9-lrwst version = v1

  1. 查看Pod的详细信息,可以查看Label信息:

kubectl describe pods my-tomcat-685b8fd9c9-lrwst

在这里插入图片描述
7. 通过Label查询Pod

kubectl get pod -l version=v1

在这里插入图片描述

  1. 通过Label删除服务

kubectl delete service -l version=v1

命令总结:

kubectl create deployment #创建一个deployment来管理创建的容器
kubectl get #显示一个或多个资源,可以使用标签过滤,默认查看当前名称空间的资源
kubectl expose #将一个资源暴露为一个新的kubernetes的service资源,资源包括pod (po), service (svc), replicationcontroller (rc),deployment(deploy), replicaset (rs)
kubectl describe #显示特定资源或资源组的详细信息
kubectl scale #可以对Deployment, ReplicaSet, Replication Controller, 或者StatefulSet设置新的值,可以指定一个或多个先决条件
kubectl set #更改现有的应用程序资源
kubectl rollout #资源回滚管理
kubectl delete #删除资源

K8S 核心概念

Deployment

负责创建和更新应用程序的实力、 应用程序可以理解为Pod;
创建Deployment后,Master Node将应用程序实例调度到各个工作节点上运行;
如果工作节点上的应用程序关闭停止、则Master Node会将应用程序实例调度到其他的工作节点上、也是服务自愈;

Pod

相当于逻辑主机、 托管应用程序实例; 内部包含一个或者多个程序容器(Docker层);
可以理解为 在Docker容器层之上、再封装了一层的容器;

Service

为Pod提供外部访问暴露、负载均衡、服务发现;即Pod的网络代理;
若Pod没有设置Service、则只能在集群内部访问、集群外部无法访问;
在ServiceSpec标记type的方式暴露,type类型如下:

  1. ClusterIP(默认):在集群的内部IP上公开Service。这种类型使得Service只能从集群内访问。
  2. NodePort:使用NAT在集群中每个选定Node的相同端口上公开Service。使用 : 从集群外部访问Service。是ClusterIP的超集。
  3. LoadBalancer:在当前云中创建一个外部负载均衡器(如果支持的话),并为Service分配一个固定的外部IP。是NodePort的超集。
  4. ExternalName:通过返回带有该名称的CNAME记录,使用任意名称(由spec中的externalName指定)公开Service。不使用代理

k8s中的资源

  • 工作负载型资源(workload): Pod,ReplicaSet,Deployment,StatefulSet,DaemonSet等等

  • 服务发现及负载均衡型资源(ServiceDiscovery LoadBalance): Service,Ingress等等

  • 配置与存储型资源: Volume(存储卷),CSI(容器存储接口,可以扩展各种各样的第三方存储卷)

  • 特殊类型的存储卷:ConfigMap(当配置中心来使用的资源类型),Secret(保存敏感数据),DownwardAPI(把外部环境中的信息输出给容器)

  • 集群级资源:Namespace,Node,Role,ClusterRole,RoleBinding(角色绑定),ClusterRoleBinding(集群角色绑定)

  • 元数据型资源:HPA(Pod水平扩展),PodTemplate(Pod模板,用于让控制器创建Pod时使用的模板),LimitRange(用来定义硬件资源限制的)

就业务开发来看、涉及频率高的是Pod、Deployment、 Ingress、Service, Volume、其他比较少涉及实用;

资源清单

在k8s中,我们一般都会使用yaml格式的文件来创建符合我们预期期望的资源,这样的yaml文件我们一般称为资源清单

资源清单yaml的格式
apiVersion: group/apiversion  # 如果没有给定group名称,那么默认为croe,可以使用kubectl api-versions 获取当前k8s版本上所有的apiVersion版本信息(每个版本可能不同)
kind:       #资源类别
metadata:  #资源元数据
   name
   namespace  #k8s自身的namespace
   lables
   annotations   #主要目的是方便用户阅读查找
spec:期望的状态(disired state)
status:当前状态,本字段由kubernetes自身维护,用户不能去定义
#配置清单主要有五个一级字段,其中status字段用户不能定义,由k8s自身维护
使用资源清单yaml来创建k8s的资源对象

用创建deployment的命令加上参数 --dry-run -o yaml 输出部署的资源清单yaml

kubectl create deployment my-tomcat --image=tomcat:7.0.75-alpine --dry-run -o yaml

使用yaml部署tomcat

apiVersion: apps/v1
kind: Deployment
metadata:
  creationTimestamp: null
  labels:
    app: my-tomcat-yaml
  name: my-tomcat-yaml  #修改deployment的名称
spec:
  replicas: 2  #修改pod副本为两个
  selector:
    matchLabels:
      app: my-tomcat-yaml
  strategy: {}
  template:
    metadata:
      creationTimestamp: null
      labels:
        app: my-tomcat-yaml
    spec:
      containers:
      - image: tomcat:7.0.75-alpine #容器的镜像(核心)
        name: tomcat
        resources: {}
status: {}

使用apply命令

kubectl apply -f deployment-demo.yaml

在这里插入图片描述

用yaml创建service资源的对象

同样使用dry-run yaml获取yaml

kubectl expose deployment my-tomcat --name=tomcat --port=8080 --type=NodePort --dry-run -o yaml

在这里插入图片描述
创建service的yaml文件

apiVersion: v1
kind: Service
metadata:
  creationTimestamp: null
  labels:
    app: my-tomcat-yaml
  name: tomcat-service-yaml  #修改service名称
spec:
  ports:
  - port: 80  # service的虚拟ip对应的端口,在集群内网机器可以访问用service的虚拟ip加该端口号访问服务
    nodePort: 30001  # service在宿主机上映射的外网访问端口,端口范围必须在30000-32767之间
    protocol: TCP
    targetPort: 8080  # pod暴露的端口,一般与pod内部容器暴露的端口一致
  selector:
    app: my-tomcat-yaml #应用名称
  type: NodePort
status:
  loadBalancer: {}

执行apply命令创建service资源

kubectl apply -f service-demo.yaml

在这里插入图片描述

查看已存在资源的yaml

业务开发中、服务已经在运行了,我们需要查看yaml、就无需使用创建方式来查看了;
可以根据已运行的资源查看其yaml内容;

  1. 查看资源
    在这里插入图片描述
  2. 将资源的配置以yaml的格式输出出来
    使用 -o yaml输入;

kubectl get pod nginx-deploy-7db697dfbd-2qh7v -o yaml

在这里插入图片描述

Ingress

Ingress类型Nginx, 可以基于域名访问、实现访问的负载均衡;

在这里插入图片描述

  1. 使用K8S安装Ingress
  2. 创建Ingress访问配置yaml文件
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: web-ingress
spec:
  rules:
  - host: tomcat.com  #转发域名
    http:
      paths:
      - path: /
        backend:
          serviceName: tomcat-service-yaml
          servicePort: 80  #service的端口
  1. 执行apply应用;

kubectl apply -f ingress-tomcat.yaml

  1. 查看生效的ingress规则

kubectl get ing #ingress 缩写 ing

在这里插入图片描述

  1. C:\Windows\System32\drivers\etc,在host里增加如下host

192.168.65.203 (服务器IP) tomcat.com
或者
192.168.65.210 (服务器IP) tomcat.com

  1. 访问
    客户机浏览器访问http://tomcat.com/ ,能正常访问tomcat。
    在这里插入图片描述

存储卷使用

通过存储卷,我们可以把外部数据挂载到容器中去,供容器中的应用访问,这样就算容器崩溃了,数据也不会丢失;

docker的挂载:

docker run -p 80:80 --name nginx
-v /mydata/nginx/html:/usr/share/nginx/html
-v /mydata/nginx/logs:/var/log/nginx
-v /mydata/nginx/conf:/etc/nginx
-d nginx:1.10

K8S也可以挂载文件,添加配置文件nginx-volume-deployment.yaml用于创建Deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-volume-deployment
  labels:
    app: nginx
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
        - name: nginx
          image: nginx:1.10
          ports:
            - containerPort: 80
          volumeMounts:
            - mountPath: /usr/share/nginx/html
              name: html-volume
            - mountPath: /var/log/nginx
              name: logs-volume
            - mountPath: /etc/nginx
              name: conf-volume
      volumes:
        - name: html-volume
          hostPath:
            path: /home/docker/mydata/nginx/html
            type: Directory
        - name: logs-volume
          hostPath:
            path: /home/docker/mydata/nginx/logs
            type: Directory
        - name: conf-volume
          hostPath:
            path: /home/docker/mydata/nginx/conf
            type: Directory

kubectl 进行故障排除

若是服务部署失败、则可通过subscribe查看问题

kubectl describe ${RESOURCE} ${NAME}

拉到最后看到Events部分,会显示出 K8S 在部署这个服务过程的关键日志。

若是服务部署成功、业务运行出现异常、则通过logs查看问题;

kubectl logs ${POD_NAME}

进入容器内部;

kubectl exec -it [options] ${POD_NAME} -c ${CONTAINER_NAME} [args]
kubectl exec -ti $POD_NAME – bash

总结

  • Service 是 K8S 服务的核心,屏蔽了服务细节,统一对外暴露服务接口,真正做到了“微服务”。
  • 一方面外部用户不需要感知因为 Pod 上服务的意外崩溃、K8S 重新拉起 Pod 而造成的 IP 变更,外部用户也不需要感知因升级、变更服务带来的 Pod 替换而造成的 IP 变化,另一方面,Service 还可以做流量负载均衡。
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微服务是什么?微服务是用于构建应用程序的架构风格,一个大的系统可由一个或者多个微服务组成,微服务架构可将应用拆分成多个核心功能,每个功能都被称为一项服务,可以单独构建和部署,这意味着各项服务在工作和出现故障的时候不会相互影响。为什么要用微服务?单体架构下的所有代码模块都耦合在一起,代码量大,维护困难,想要更新一个模块的代码,也可能会影响其他模块,不能很好的定制化代码。微服务中可以有java编写、有Python编写的,他们都是靠restful架构风格统一成一个系统的,所以微服务本身与具体技术无关、扩展性强。大型电商平台微服务功能图为什么要将SpringCloud项目部署到k8s平台?SpringCloud只能用在SpringBoot的java环境中,而kubernetes可以适用于任何开发语言,只要能被放进docker的应用,都可以在kubernetes上运行,而且更轻量,更简单。SpringCloud很多功能都跟kubernetes重合,比如服务发现,负载均衡,配置管理,所以如果把SpringCloud部署到k8s,那么很多功能可以直接使用k8s原生的,减少复杂度。Kubernetes作为成熟的容器编排工具,在国内外很多公司、世界500强等企业已经落地使用,很多中小型公司也开始把业务迁移到kubernetes中。kubernetes已经成为互联网行业急需的人才,很多企业都开始引进kubernetes技术人员,实现其内部的自动化容器云平台的建设。对于开发、测试、运维、架构师等技术人员来说k8s已经成为的一项重要的技能,下面列举了国内外在生产环境使用kubernetes的公司: 国内在用k8s的公司:阿里巴巴、百度、腾讯、京东、360、新浪、头条、知乎、华为、小米、富士康、移动、银行、电网、阿里云、青云、时速云、腾讯、优酷、抖音、快手、美团等国外在用k8s的公司:谷歌、IBM、丰田、iphone、微软、redhat等整个K8S体系涉及到的技术众多,包括存储、网络、安全、监控、日志、DevOps、微服务等,很多刚接触K8S的初学者,都会感到无从下手,为了能让大家系统地学习,克服这些技术难点,推出了这套K8S架构师课程。Kubernetes的发展前景 kubernetes作为炙手可热的技术,已经成为云计算领域获取高薪要掌握的重要技能,在招聘网站搜索k8s,薪资水平也非常可观,为了让大家能够了解k8s目前的薪资分布情况,下面列举一些K8S的招聘截图: 讲师介绍:  先超容器云架构师、IT技术架构师、DevOps工程师,曾就职于世界500强上市公司,拥有多年一线运维经验,主导过上亿流量的pv项目的架构设计和运维工作;具有丰富的在线教育经验,对课程一直在改进和提高、不断的更新和完善、开发更多的企业实战项目。所教学员遍布京东、阿里、百度、电网等大型企业和上市公司。课程学习计划 学习方式:视频录播+视频回放+全套源码笔记 教学服务:模拟面试、就业指导、岗位内推、一对一答疑、远程指导 VIP终身服务:一次购买,终身学习课程亮点:1. 学习方式灵活,不占用工作时间:可在电脑、手机观看,随时可以学习,不占用上班时间2.老师答疑及时:老师24小时在线答疑3. 知识点覆盖全、课程质量高4. 精益求精、不断改进根据学员要求、随时更新课程内容5. 适合范围广,不管你是0基础,还是拥有工作经验均可学习:0基础1-3年工作经验3-5年工作经验5年以上工作经验运维、开发、测试、产品、前端、架构师其他行业转行做技术人员均可学习课程部分项目截图   课程大纲 k8s+SpringCloud全栈技术:基于世界500强的企业实战课程-大纲第一章 开班仪式老师自我介绍、课程大纲介绍、行业背景、发展趋势、市场行情、课程优势、薪资水平、给大家的职业规划、课程学习计划、岗位内推第二章 kubernetes介绍Kubernetes简介kubernetes起源和发展kubernetes优点kubernetes功能kubernetes应用领域:在大数据、5G、区块链、DevOps、AI等领域的应用第三章  kubernetes中的资源对象最小调度单元Pod标签Label和标签选择器控制器Replicaset、Deployment、Statefulset、Daemonset等四层负载均衡器Service第四章 kubernetes架构和组件熟悉谷歌的Borg架构kubernetes单master节点架构kubernetes多master节点高可用架构kubernetes多层架构设计原理kubernetes API介绍master(控制)节点组件:apiserver、scheduler、controller-manager、etcdnode(工作)节点组件:kube-proxy、coredns、calico附加组件:prometheus、dashboard、metrics-server、efk、HPA、VPA、Descheduler、Flannel、cAdvisor、Ingress     Controller。第五章 部署多master节点的K8S高可用集群(kubeadm)第六章 带你体验kubernetes可视化界面dashboard在kubernetes中部署dashboard通过token令牌登陆dashboard通过kubeconfig登陆dashboard限制dashboard的用户权限在dashboard界面部署Web服务在dashboard界面部署redis服务第七章 资源清单YAML文件编写技巧编写YAML文件常用字段,YAML文件编写技巧,kubectl explain查看帮助命令,手把手教你创建一个Pod的YAML文件第八章 通过资源清单YAML文件部署tomcat站点编写tomcat的资源清单YAML文件、创建service发布应用、通过HTTP、HTTPS访问tomcat第九章  kubernetes Ingress发布服务IngressIngress Controller概述Ingress和Servcie关系安装Nginx Ingress Controller安装Traefik Ingress Controller使用Ingress发布k8s服务Ingress代理HTTP/HTTPS服务Ingress实现应用的灰度发布-可按百分比、按流量分发第十章 私有镜像仓库Harbor安装和配置Harbor简介安装HarborHarbor UI界面使用上传镜像到Harbor仓库从Harbor仓库下载镜像第十一章 微服务概述什么是微服务?为什么要用微服务?微服务的特性什么样的项目适合微服务?使用微服务需要考虑的问题常见的微服务框架常见的微服务框架对比分析第十二章 SpringCloud概述SpringCloud是什么?SpringCloud和SpringBoot什么关系?SpringCloud微服务框架的优缺点SpringCloud项目部署到k8s的流程第十三章 SpringCloud组件介绍服务注册与发现组件Eureka客户端负载均衡组件Ribbon服务网关Zuul熔断器HystrixAPI网关SpringCloud Gateway配置中心SpringCloud Config第十四章 将SpringCloud项目部署到k8s平台的注意事项如何进行服务发现?如何进行配置管理?如何进行负载均衡?如何对外发布服务?k8s部署SpringCloud项目的整体流程第十五章 部署MySQL数据库MySQL简介MySQL特点安装部署MySQL在MySQL数据库导入数据对MySQL数据库授权第十六章 将SpringCLoud项目部署到k8s平台SpringCloud的微服务电商框架安装openjdk和maven修改源代码、更改数据库连接地址通过Maven编译、构建、打包源代码在k8s中部署Eureka组件在k8s中部署Gateway组件在k8s中部署前端服务在k8s中部署订单服务在k8s中部署产品服务在k8s中部署库存服务第十七章 微服务的扩容和缩容第十八章 微服务的全链路监控什么是全链路监控?为什么要进行全链路监控?全链路监控能解决哪些问题?常见的全链路监控工具:zipkin、skywalking、pinpoint全链路监控工具对比分析第十九章 部署pinpoint服务部署pinpoint部署pinpoint agent在k8s中重新部署带pinpoint agent的产品服务在k8s中重新部署带pinpoint agent的订单服务在k8s中重新部署带pinpoint agent的库存服务在k8s中重新部署带pinpoint agent的前端服务在k8s中重新部署带pinpoint agent的网关和eureka服务Pinpoint UI界面使用第二十章 基于Jenkins+k8s+harbor等构建企业级DevOps平台第二十一章 基于Promethues+Alert+Grafana搭建企业级监控系统第二十二章 部署智能化日志收集系统EFK 

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值