sidecar这个词一般指带有跨斗的摩托车,在二战时候小日本开着很多这种摩托车,它在原有基础上添加了一个跨斗,之后就可以多载一个人,而对于原来的两轮摩托车没有什么影响,把跨斗拆了也是可以的,对原来的事物没有本质上的破坏,只是扩展了新的功能,这与软件开发里的OCP原则很像,在服务网格的istio里也有这个概念,它把这种组件叫“sidecar”,在istio里sidecar也只是一个概念,具体是由envoy来实现的。

具体fluentd功能的sidecar

我们的容器部署到k8s里,通过k8s来管理我们的容器,实现对容器的生命周期管理,服务发现管理,多副本管理等等;而我们把这些容器可以理解为一个个的微服务,而这些服务的日志一般先记录在本地,然后推到elasticsearch里,而日志收集工具我们可以选择fluent,Filebeat,Logstash等等。

添加fluentd的sidecar

添加fluentd.config配置

<source>
type tail
format json
path /var/log/*.log
pos_file /var/log/log.pos
tag saas # 这个tag对应match.logstash_prefix,之后在kibana的索引配置里可以找到
</source><match **>
@id elasticsearch
@type elasticsearch
@log_level debug
index_name fluentd
type_name fluentd
host elasticsearch.elk
port 9200
include_tag_key true
tag_key @log_name
logstash_format true
logstash_prefix saas
flush_interval 10s
</match>

服务的部署文件添加sidecar

kind: Service
apiVersion: v1
metadata:name: hello-worldnamespace: saas
spec:selector:app: hello-worldtype: ClusterIPports:- protocol: TCPtargetPort: 9001port: 80
---
# 构建反射代理
kind: Ingress
apiVersion: extensions/v1beta1
metadata:name: hello-world-ingressnamespace: saasannotations:kubernetes.io/ingress.class: "nginx"nginx.ingress.kubernetes.io/use-regex: "true"
spec:tls:- hosts:- www.abc.comsecretName: saas-tlsrules:- host: www.abc.comhttp:paths:- backend:serviceName: hello-worldservicePort: 9001- path: /dotnetbackend:serviceName: dotnet-helloservicePort: 80
---
kind: Deployment
apiVersion: apps/v1
metadata:name: hello-world-deploymentnamespace: saaslabels:app: hello-world
spec:replicas: 1selector:matchLabels:app: hello-worldtemplate:metadata:labels:app: hello-worldspec:containers:- name: hello-worldimage: 172.17.0.22:8888/saas/hello-world:latestimagePullPolicy: Alwaysports:- containerPort: 9001env:- name: spring.profiles.activevalue: prodvolumeMounts:- name: varlogmountPath: /var/log- name: fluent-sidecarimage: registry.cn-beijing.aliyuncs.com/k8s-mqm/fluentd-elasticsearch:v2.1.0env:- name: FLUENTD_ARGSvalue: -c /etc/fluentd-config/fluentd.confvolumeMounts:- name: varlogmountPath: /var/log- name: config-volumemountPath: /etc/fluentd-configvolumes:- name: varlogemptyDir: {}- name: config-volumeconfigMap:name: fluentd-config

当你的hello-world部署到k8s之后,在有日志记录时它会写到/var/logs目录,而fluentd这个sidecar因为是与容器花用的磁盘,所以它也可以读到日志的内容,然后把日志发到elasticsearch里。

愿与诸君共进步,大量的面试题及答案还有资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系,可以微信搜索539413949获取,最后祝大家都能拿到自己心仪的offer

k8s~为服务添加sidecar边斗相关推荐

  1. 阿里云K8S容器服务的使用

    使用阿里云k8s构建服务 一. 上传镜像 二. k8s运行 三. 服务配置导入 四. 服务路由 五. 节点亲和性和污点管理 一. 上传镜像 在阿里云控制台找到"容器镜像服务",开启 ...

  2. Blazor+Dapr+K8s微服务之开发环境调试

    1 安装Dapr开发调试环境 1.1 Dapr 完整安装模式不支持开发调试 在上一篇随笔<Blazor+Dapr+K8s微服务之服务调用>中,我们通过为每个微服务运行dapr run -. ...

  3. k8s DNS服务配置

    一.DNS服务概述 service发现是k8s中的一个重要机制,其基本功能为:在集群内通过服务名对服务进行访问,即需要完成从服务名到ClusterIP的解析. k8s主要有两种service发现机制: ...

  4. k8s 之服务发现(service)

    文章目录 k8s 之服务发现(service) 一.基本概念 二.类型介绍 Service 在 K8S 中有以下四种类型 三.代理模式 userspace 代理模式 iptables 代理模式 ipv ...

  5. 《docker+k8s微服务容器化实践》笔记2

    5-3 集群环境搭建_A  5-4 集群环境搭建_B  5-5 集群环境搭建_C 这次开始动手操作,首先是Mesos的安装,怎么来安装Mesos.源码:https://github.com/limin ...

  6. [图]为C# Windows服务添加安装程序

    最近一直在搞Windows服务,也有了不少经验,感觉权限方面确定比一般程序要受限很多,但方便性也很多.像后台运行不阻塞系统,不用用户登录之类.哈哈,扯远了,今天讲一下那个怎么给Windows服务做个安 ...

  7. Android的***.sh的开机服务添加

    Android的***.sh的开机服务添加 Android的***.sh的开机服务添加 1.写好wifi_scan_android.sh 2.直接将wifi_scan_android放到./devic ...

  8. 为C# Windows服务添加安装程序

    首先,当然是创建一个Windows服务的项目.这个大家应该都知道怎么做(这都不明白的留言问我),然后要给服务"添加安装程序",如图1所示:(这一步和自己用InstallUtil注册 ...

  9. Blazor+Dapr+K8s微服务之基于WSL安装K8s集群并部署微服务

     前面文章已经演示过,将我们的示例微服务程序DaprTest1部署到k8s上并运行.当时用的k8s是Docker for desktop 自带的k8s,只要在Docker for desktop中启用 ...

最新文章

  1. 在 Django 的 View 中利用 function decorator 可实现一定程度的代码重用
  2. SQL Server : 如何让每次备份的目标文件文件名不一样
  3. [开发笔记]-未找到与约束ContractName Microsoft.VisualStudio.Text.ITextDocumentFactoryService...匹配的导出...
  4. canva五角星空html,【Canvas】canva实例-星空、日出的效果
  5. [Luogu1821][USACO07FEB]银牛派对Silver Cow Party
  6. ASP.Net WebForm温故知新学习笔记:二、ViewState与UpdatePanel探秘
  7. 解释http和html,解释HTTP、HTML的含义
  8. android studio grandle错误,flutter android studio构建失败
  9. 德阳计算机工程学校,德阳电子计算机工程学校2021年招生录取分数线
  10. 在Ubuntu上安装搜狗输入法
  11. w ndows7旗舰版镜像下载,win7旗舰版32位原版iso
  12. liang-Barskey算法
  13. 东北林业大学计算机科学与技术考研,东北林业大学计算机科学与技术2019年考研加试科目计算机网络专业课大纲...
  14. 云计算成就代码之美——首届阿里云开发者大赛巡礼
  15. 全息投影手机Alo将引领未来趋势!全息3d 网
  16. Golang开发定时钉钉小机器人(基于gin+gorm)
  17. 【修电脑】每次关机提示rundll32.exe程序没有响应,修改注册表解决问题
  18. 关于高德地图标注的那些坑
  19. JAVA从零开始开发区块链技术
  20. 连接到系统上的设备没有发挥作用解决方案

热门文章

  1. 电脑无法上网因为网卡驱动有问题怎么办
  2. 数据结构 - 二叉树遍历算法图解
  3. centos 安装cronolog及对catalina.out按天分割
  4. 创意文化管理札记 (转)
  5. 有趣的数据结构算法9——利用栈完成2进制到8进制的转换
  6. 墨卡托、高斯克吕格和UTM投影
  7. android菊花动画,仿ios系统加载动画(菊花旋转)
  8. mvp模式复用android,MVP模式
  9. 传统图像处理之随机脉冲噪声检测
  10. c语言fuc函数,CMocker