Docker教程


Docker基础

Docker案例

Read more

istio分布式追踪与可视化


一、istio分布式追踪

官方网站:https://www.jaegertracing.io/

# 修改 tracing 的 svc 模式由 ClusterIP 为 NodePort
kubectl edit svc tracing -n istio-system
# 查看 tracing 的端口
kubectl get svc -n istio-system
# 通过浏览器进行访问
http://IP:PORT/jaeger

23.png

24.png

25.png

26.png

27.png

二、 网络可视化

# 首先,定义要用作 Kiali 用户名和密码的凭据。
KIALI_USERNAME=$(read -p 'Kiali U...

Read more

istio指标收集与查询


一、istio指标收集与查询

1、通过 Prometheus 查询度量指标

采集新的指标

应用配置新指标的 YAML 文件,该指标将由 Istio 自动生成和采集

kubectl apply -f metrics.yaml

修改 prometheus 的 svc 模式由 ClusterIP 为 NodePort

kubectl edit svc prometheus -n istio-system

查看 prometheus 的端口

kubectl get svc -n istio-system

通过浏览器进行访问

http://IP:PORT

上述链接打开 Prome...

Read more

istio 流量管理


一、istio 流量管理

1、配置请求路由

Istio Bookinfo 示例包含四个独立的微服务,每个微服务都有多个版本。 其中一个微服务 reviews 的三个不同版本已经部署并同时运行。 为了说明这导致的问题,在浏览器中访问 Bookinfo 应用程序的 /productpage 并刷新几次。 您会注意到,有时书评的输出包含星级评分,有时则不包含。 这是因为没有明确的默认服务版本路由,Istio 将以循环方式请求路由到所有可用版本,此任务的最初目标是应用将所有流量路由到微服务的 v1 (版本 1)的规则。

运行以下命令以应用 virtual services

kubectl ap...

Read more

istio 部署


一、istio 部署

下载地址:https://github.com/istio/istio/releases

资源配置:

master 2U2G

node 2U8G

curl -L https://git.io/getLatestIstio | ISTIO_VERSION=1.5.4 sh -

kubectl create namespace istio-system

cd istio-1.5.4

使用 helm template 生成配置文件进行安装:

初始化:

helm template install/kubernetes/helm/istio-init --name ...

Read more

istio集群服务治理


一、Service Mesh 服务网格是什么

随着服务网络的规模和复杂性不断的增长,它将会变得越来越难以理解和管理。它的需求包括服务发现、负载均衡、故障恢复、度量和监控等。服务网络通常还有更复杂的运维需求,比如 A/B 测试、灰度发布、速率限制、访问控制和端到端认证。

服务网格用来描述组成这些应用程序的微服务网络以及它们之间的交互。简单来说,Service Mesh 可以看做是传统代理的升级版,用来解决现在微服务框架中出现的问题,可以把 Service Mesh 看做是分布式的微服务代理,在传统模式下,代理一般是集中式的单独的服务器,所有的请求都要先通过代理,然后再流入转发到实际的后端,...

Read more

利用 Jenkins 实现CICD


一、什么是 CI/CD

持续集成(CI)与持续交付(CD)是软件开发和交付中的实践。

什么是持续集成?

软件开发中,集成是一个很可能发生未知错误的过程。持续集成是一种软件开发实践,希望团队中的成员频繁提交代码到代码仓库,且每次提交都能通过自动化测试进行验证,从而使问题尽早暴露和解决。

持续集成的好处是什么?

持续集成可以使问题尽早暴露,从而也降低了解决问题的难度,持续集成无法消除bug,但却能大大降低修复的难度和时间。

什么是持续交付?

持续交付是持续集成的扩展,指的是将通过自动化测试的软件部署到产品环境。持续交付的本质是把每个构建成功的应用更新交付给用户使用。

持续交付的好处是什么?

...

Read more

Kubernetes 集群高可用


高可用架构(扩容多Master架构)

Master高可用主要针对kube-apiserver组件,而该组件是以HTTP API提供服务,因此对他高可用与Web服务器类似,增加负载均衡器对其负载均衡即可,并且可水平扩容。

多Master架构图:

img

部署Nginx负载均衡器

kube-apiserver高可用架构图:

img

  • Nginx是一个主流Web服务和反向代理服务器,这里用四层实现对apiserver实现负载均衡。
  • Keepalived是一个主流高可用软件,基于VIP绑定实现服务器双机热备,在上述拓扑中,Keepalived主要根据Nginx运行状态判断是否需要故障转移(偏移VIP),例如...

Read more

服务部署与迁移示例


通过两种方法部署wordpress

一、服务部署与迁移示例

1、简单的部署 wordpress

通过 mysql 与 wordpress 镜像包部署持久化的 wordpress 博客网站

1.1、创建 PV

vim lnmp-pv.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv001
spec:
  capacity:
    storage: 2Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Re...

Read more

部署EFK pod日志分析系统


一、前言

image-20241220111132739

Kubernetes 中比较流行的日志收集解决方案是 Elasticsearch、Fluentd 和 Kibana(EFK)技术栈,也是官方现在比较推荐的一种方案。

1.1、主要组件功能

  1. Elasticsearch(ES):
    • 强大的搜索和查询能力:ES是一个分布式搜索和分析引擎,具有高效的搜索和查询功能。它可以处理大规模的数据,并且支持复杂的查询操作。
    • 可伸缩性和高可用性:可通过增加节点来扩展存储和吞吐量,并且自动进行数据分片和副本分配,以确保高可用性和容错性。
    • 实时数据分析:实时地索引和分析日志数据,可以快速地提供实时的分析结果和可视化。
  2. Fluentd:
    • 灵活的数据...

Read more