1.简介

这里所指的EFK是指:ElasticSearch,Fluentd,Kibana

ElasticSearch

  1. Elasticsearch是一个基于Apache Lucene的开源搜索和数据分析引擎引擎,Elasticsearch使用Java进行开发,并使用Lucene作为其核心实现所有索引和搜索的功能。它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。Elasticsearch不仅仅是Lucene和全文搜索,它还提供如下的能力:
  2. 分布式的实时文件存储,每个字段都被索引并可被搜索;
  3. 分布式的实时分析搜索引擎;
  4. 可以扩展到上百台服务器,处理PB级结构化或非结构化数据。
  5. Elasticsearch中,包含多个索引(Index),相应的每个索引可以包含多个类型(Type),这些不同的类型每个都可以存储多个文档(Document),每个文档又有多个属性。索引 (index) 类似于传统关系数据库中的一个数据库,是一个存储关系型文档的地方。Elasticsearch 使用的是标准的 RESTful API JSON。此外,还构建和维护了很多其他语言的客户端,例如 Java, Python, .NET, PHP

Fluentd

  1. Fluentd是一个开源数据收集器,通过它能对数据进行统一收集和消费,能够更好地使用和理解数据。Fluentd将数据结构化为JSON,从而能够统一处理日志数据,包括:收集、过滤、缓存和输出。Fluentd是一个基于插件体系的架构,包括输入插件、输出插件、过滤插件、解析插件、格式化插件、缓存插件和存储插件,通过插件可以扩展和更好的使用Fluentd

Kibana

  1. Kibana是一个开源的分析与可视化平台,被设计用于和Elasticsearch一起使用的。通过kibana可以搜索、查看和交互存放在Elasticsearch中的数据,利用各种不同的图表、表格和地图等,Kibana能够对数据进行分析与可视化

2.下载需要用到的EFK的yaml文件

kubernetes的github

  1. https://github.com/kubernetes/kubernetes/tree/master/cluster/addons/fluentd-elasticsearch
  2. 温馨提示:
  3. github有非存储持久化方式部署,需要存储持久化请修改现有的yaml

下载连接

  1. mdkir /root/EFK
  2. cd /root/EFK
  3. wget https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/fluentd-elasticsearch/es-service.yaml
  4. wget https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/fluentd-elasticsearch/es-statefulset.yaml
  5. wget https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/fluentd-elasticsearch/fluentd-es-configmap.yaml
  6. wget https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/fluentd-elasticsearch/fluentd-es-ds.yaml
  7. wget https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/fluentd-elasticsearch/kibana-deployment.yaml
  8. wget https://raw.githubusercontent.com/kubernetes/kubernetes/master/cluster/addons/fluentd-elasticsearch/kibana-service.yaml

或者使用easzlab的也可以

  1. https://github.com/easzlab/kubeasz/tree/master/manifests/efk
  2. 温馨提示:
  3. github,有非存储持久化部署方式,也有持久化部署方式。

下载连接地址:

  1. wget https://raw.githubusercontent.com/easzlab/kubeasz/master/manifests/efk/es-without-pv/es-statefulset.yaml
  2. 温馨提示:es-static-pves-dynamic-pv分别是静态pv和动太pv存储持久方案,如需要可参考,es-without-pv此文件夹是非存储持久方案
  3. wget https://raw.githubusercontent.com/easzlab/kubeasz/master/manifests/efk/es-service.yaml
  4. wget https://raw.githubusercontent.com/easzlab/kubeasz/master/manifests/efk/fluentd-es-configmap.yaml
  5. wget https://raw.githubusercontent.com/easzlab/kubeasz/master/manifests/efk/fluentd-es-ds.yaml
  6. wget https://raw.githubusercontent.com/easzlab/kubeasz/master/manifests/efk/kibana-deployment.yaml
  7. wget https://raw.githubusercontent.com/easzlab/kubeasz/master/manifests/efk/kibana-service.yaml

3.下载EFK需要的镜像

yaml源文件需要的镜像及地址

  1. elasticsearch:v7.4.2 quay.io/fluentd_elasticsearch/elasticsearch:v7.4.2
  2. fluentd:v2.8.0 quay.io/fluentd_elasticsearch/fluentd:v2.8.0
  3. kibana-oss:7.4.2 docker.elastic.co/kibana/kibana-oss:7.4.2
  4. 温馨提示:因v7.4.2测试了几次都存在问题,elasticsearch一直重启报错,故更新为6.6.1
  5. elasticsearch:v6.6.1 quay.io/fluentd_elasticsearch/elasticsearch:v6.6.1
  6. fluentd-elasticsearch:v2.4.0 quay.io/fluentd_elasticsearch/fluentd_elasticsearch:v2.4.0
  7. kibana-oss:6.6.1 docker.elastic.co/kibana/kibana-oss:6.6.1

因不能上网,故在阿里云镜像上直接找到相对应的连接

  1. elasticsearch:v6.6.1 registry.cn-hangzhou.aliyuncs.com/yfhub/elasticsearch:v6.6.1
  2. fluentd-elasticsearch:v2.4.0 registry.cn-hangzhou.aliyuncs.com/yfhub/fluentd-elasticsearch:v2.4.0
  3. kibana-oss:6.6.1 registry.cn-hangzhou.aliyuncs.com/yfhub/kibana-oss:6.6.1

使用docker pull把镜像拉下来

  1. docker pull registry.cn-hangzhou.aliyuncs.com/yfhub/elasticsearch:6.6.1
  2. docker pull registry.cn-hangzhou.aliyuncs.com/yfhub/fluentd-elasticsearch:v2.4.0
  3. docker pull registry.cn-hangzhou.aliyuncs.com/yfhub/kibana-oss:6.6.1

把镜像打标签使之与yaml需要的一致

  1. docker tag registry.cn-hangzhou.aliyuncs.com/yfhub/elasticsearch:6.6.1 quay.io/fluentd_elasticsearch/elasticsearch:v6.6.1
  2. docker tag registry.cn-hangzhou.aliyuncs.com/yfhub/fluentd-elasticsearch:v2.4.0 quay.io/fluentd_elasticsearch/fluentd_elasticsearch:v2.4.0
  3. docker tag registry.cn-hangzhou.aliyuncs.com/yfhub/kibana-oss:6.6.1 docker.elastic.co/kibana/kibana-oss:6.6.1

上传打标签前的节点

  1. docker rmi registry.cn-hangzhou.aliyuncs.com/yfhub/elasticsearch:6.6.1
  2. docker rmi registry.cn-hangzhou.aliyuncs.com/yfhub/fluentd-elasticsearch:v2.4.0
  3. docker rmi registry.cn-hangzhou.aliyuncs.com/yfhub/kibana-oss:6.6.1

把镜像保存为tar,方便分发到其它的Node节点并导入

  1. docker save -o elasticsearch-v6.6.1 quay.io/fluentd_elasticsearch/elasticsearch:v6.6.1
  2. docker save -o fluentd-elasticsearch-v2.4.0 quay.io/fluentd_elasticsearch/fluentd_elasticsearch:v2.4.0
  3. docker save -o kibana-oss-6.6.1 docker.elastic.co/kibana/kibana-oss:6.6.1

把打包的镜像传到其它节点

  1. scp -r elasticsearch-v6.6.1 fluentd-elasticsearch-v2.4.0 kibana-oss-6.6.12 k8s-node02:/root/

**在Node02节点上导入镜像

  1. docker load -i elasticsearch-v6.6.1 && docker load -i fluentd-elasticsearch-v2.4.0 && docker load -i kibana-oss-6.6.1

4.对kubernetes官方的EFK的yaml进行改动

es-service.yaml文件内容如下(温馨提示,带有叉的都是注释行,默认原文件可能是启用状态)

  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4. name: elasticsearch-logging
  5. namespace: kube-system
  6. labels:
  7. k8s-app: elasticsearch-logging
  8. kubernetes.io/cluster-service: "true"
  9. addonmanager.kubernetes.io/mode: Reconcile
  10. kubernetes.io/name: "Elasticsearch"
  11. spec:
  12. type: NodePort #通过NodePort暴露端口,以便通过elasticsearch-head来连接elasticsearch查看
  13. ports:
  14. - port: 9200
  15. protocol: TCP
  16. targetPort: db
  17. selector:
  18. k8s-app: elasticsearch-logging

es-statefulset.yaml文件内容如下(温馨提示,带有叉的都是注释行,默认原文件可能是启用状态)

  1. # RBAC authn and authz
  2. apiVersion: v1
  3. kind: ServiceAccount
  4. metadata:
  5. name: elasticsearch-logging
  6. namespace: kube-system
  7. labels:
  8. k8s-app: elasticsearch-logging
  9. kubernetes.io/cluster-service: "true" #此行是新添加
  10. addonmanager.kubernetes.io/mode: Reconcile
  11. ---
  12. kind: ClusterRole
  13. apiVersion: rbac.authorization.k8s.io/v1
  14. metadata:
  15. name: elasticsearch-logging
  16. labels:
  17. k8s-app: elasticsearch-logging
  18. addonmanager.kubernetes.io/mode: Reconcile
  19. kubernetes.io/cluster-service: "true" #此行是新添加
  20. rules:
  21. - apiGroups:
  22. - ""
  23. resources:
  24. - "services"
  25. - "namespaces"
  26. - "endpoints"
  27. verbs:
  28. - "get"
  29. ---
  30. kind: ClusterRoleBinding
  31. apiVersion: rbac.authorization.k8s.io/v1
  32. metadata:
  33. namespace: kube-system
  34. name: elasticsearch-logging
  35. labels:
  36. k8s-app: elasticsearch-logging
  37. kubernetes.io/cluster-service: "true" #此行是新添加
  38. addonmanager.kubernetes.io/mode: Reconcile
  39. subjects:
  40. - kind: ServiceAccount
  41. name: elasticsearch-logging
  42. namespace: kube-system
  43. apiGroup: ""
  44. roleRef:
  45. kind: ClusterRole
  46. name: elasticsearch-logging
  47. apiGroup: ""
  48. ---
  49. # Elasticsearch deployment itself
  50. apiVersion: apps/v1
  51. kind: StatefulSet
  52. metadata:
  53. name: elasticsearch-logging
  54. namespace: kube-system
  55. labels:
  56. k8s-app: elasticsearch-logging
  57. version: v6.6.1
  58. kubernetes.io/cluster-service: "true" #此行是新添加
  59. addonmanager.kubernetes.io/mode: Reconcile
  60. spec:
  61. serviceName: elasticsearch-logging
  62. replicas: 2
  63. selector:
  64. matchLabels:
  65. k8s-app: elasticsearch-logging
  66. version: v6.6.1
  67. template:
  68. metadata:
  69. labels:
  70. k8s-app: elasticsearch-logging
  71. version: v6.6.1
  72. kubernetes.io/cluster-service: "true" #此行是新添加
  73. spec:
  74. serviceAccountName: elasticsearch-logging
  75. containers:
  76. - image: quay.io/fluentd_elasticsearch/elasticsearch:v6.6.1
  77. name: elasticsearch-logging
  78. imagePullPolicy: IfNotPresent #默认为Always,修改为IfNotPresent
  79. resources:
  80. # need more cpu upon initialization, therefore burstable class
  81. limits:
  82. cpu: 1000m
  83. # memory: 3Gi
  84. requests:
  85. cpu: 100m
  86. # memory: 3Gi
  87. ports:
  88. - containerPort: 9200
  89. name: db
  90. protocol: TCP
  91. - containerPort: 9300
  92. name: transport
  93. protocol: TCP
  94. # livenessProbe:
  95. # tcpSocket:
  96. # port: transport
  97. # initialDelaySeconds: 5
  98. # timeoutSeconds: 10
  99. # readinessProbe:
  100. # tcpSocket:
  101. # port: transport
  102. # initialDelaySeconds: 5
  103. # timeoutSeconds: 10
  104. volumeMounts:
  105. - name: elasticsearch-logging
  106. mountPath: /data
  107. env:
  108. - name: "NAMESPACE"
  109. valueFrom:
  110. fieldRef:
  111. fieldPath: metadata.namespace
  112. volumes:
  113. - name: elasticsearch-logging
  114. emptyDir: {}
  115. # Elasticsearch requires vm.max_map_count to be at least 262144.
  116. # If your OS already sets up this number to a higher value, feel free
  117. # to remove this init container.
  118. initContainers:
  119. - image: alpine:3.6
  120. command: ["/sbin/sysctl", "-w", "vm.max_map_count=262144"]
  121. name: elasticsearch-logging-init
  122. securityContext:
  123. privileged: true

fluentd-es-ds.yaml文件内容如下,fluentd-es-configmap.yaml文件内容保持不变(温馨提示,带有叉的都是注释行,默认原文件可能是启用状态)

  1. apiVersion: v1
  2. kind: ServiceAccount
  3. metadata:
  4. name: fluentd-es
  5. namespace: kube-system
  6. labels:
  7. k8s-app: fluentd-es
  8. addonmanager.kubernetes.io/mode: Reconcile
  9. ---
  10. kind: ClusterRole
  11. apiVersion: rbac.authorization.k8s.io/v1
  12. metadata:
  13. name: fluentd-es
  14. labels:
  15. k8s-app: fluentd-es
  16. addonmanager.kubernetes.io/mode: Reconcile
  17. rules:
  18. - apiGroups:
  19. - ""
  20. resources:
  21. - "namespaces"
  22. - "pods"
  23. verbs:
  24. - "get"
  25. - "watch"
  26. - "list"
  27. ---
  28. kind: ClusterRoleBinding
  29. apiVersion: rbac.authorization.k8s.io/v1
  30. metadata:
  31. name: fluentd-es
  32. labels:
  33. k8s-app: fluentd-es
  34. addonmanager.kubernetes.io/mode: Reconcile
  35. subjects:
  36. - kind: ServiceAccount
  37. name: fluentd-es
  38. namespace: kube-system
  39. apiGroup: ""
  40. roleRef:
  41. kind: ClusterRole
  42. name: fluentd-es
  43. apiGroup: ""
  44. ---
  45. apiVersion: apps/v1
  46. kind: DaemonSet
  47. metadata:
  48. name: fluentd-es-v2.4.0
  49. namespace: kube-system
  50. labels:
  51. k8s-app: fluentd-es
  52. version: v2.4.0
  53. addonmanager.kubernetes.io/mode: Reconcile
  54. spec:
  55. selector:
  56. matchLabels:
  57. k8s-app: fluentd-es
  58. version: v2.4.0
  59. template:
  60. metadata:
  61. labels:
  62. k8s-app: fluentd-es
  63. version: v2.4.0
  64. # This annotation ensures that fluentd does not get evicted if the node
  65. # supports critical pod annotation based priority scheme.
  66. # Note that this does not guarantee admission on the nodes (#40573).
  67. annotations:
  68. seccomp.security.alpha.kubernetes.io/pod: 'docker/default'
  69. spec:
  70. priorityClassName: system-node-critical
  71. serviceAccountName: fluentd-es
  72. containers:
  73. - name: fluentd-es
  74. image: quay.io/fluentd_elasticsearch/fluentd_elasticsearch:v2.4.0 #镜像地址一定记得修改
  75. env:
  76. - name: FLUENTD_ARGS
  77. value: --no-supervisor -q
  78. resources:
  79. limits:
  80. memory: 500Mi
  81. requests:
  82. cpu: 100m
  83. memory: 200Mi
  84. volumeMounts:
  85. - name: varlog
  86. mountPath: /var/log
  87. - name: varlibdockercontainers
  88. mountPath: /var/lib/docker/containers
  89. readOnly: true
  90. - name: config-volume
  91. mountPath: /etc/fluent/config.d
  92. # ports:
  93. # - containerPort: 24231
  94. # name: prometheus
  95. # protocol: TCP
  96. #livenessProbe:
  97. # tcpSocket:
  98. # port: prometheus
  99. # initialDelaySeconds: 5
  100. # timeoutSeconds: 10
  101. #readinessProbe:
  102. # tcpSocket:
  103. # port: prometheus
  104. # initialDelaySeconds: 5
  105. # timeoutSeconds: 10
  106. terminationGracePeriodSeconds: 30
  107. volumes:
  108. - name: varlog
  109. hostPath:
  110. path: /var/log
  111. - name: varlibdockercontainers
  112. hostPath:
  113. path: /var/lib/docker/containers
  114. - name: config-volume
  115. configMap:
  116. name: fluentd-es-config-v0.2.0

kibana-deployment.yaml文件内容如下(温馨提示,带有叉的都是注释行,默认原文件可能是启用状态)

  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4. name: kibana-logging
  5. namespace: kube-system
  6. labels:
  7. k8s-app: kibana-logging
  8. addonmanager.kubernetes.io/mode: Reconcile
  9. spec:
  10. replicas: 1
  11. selector:
  12. matchLabels:
  13. k8s-app: kibana-logging
  14. template:
  15. metadata:
  16. labels:
  17. k8s-app: kibana-logging
  18. annotations:
  19. seccomp.security.alpha.kubernetes.io/pod: 'docker/default'
  20. spec:
  21. containers:
  22. - name: kibana-logging
  23. image: docker.elastic.co/kibana/kibana-oss:6.6.1 #镜像连接地址
  24. resources:
  25. # need more cpu upon initialization, therefore burstable class
  26. limits:
  27. cpu: 1000m
  28. requests:
  29. cpu: 100m
  30. env:
  31. #- name: ELASTICSEARCH_HOSTS
  32. - name: ELASTICSEARCH_URL
  33. value: http://elasticsearch-logging:9200
  34. #- name: SERVER_NAME
  35. # value: kibana-logging
  36. - name: SERVER_BASEPATH
  37. value: "" #kibana是通过nodeport方式进行访问,请把value的值改为此
  38. #value: /api/v1/namespaces/kube-system/services/kibana-logging/proxy
  39. # - name: SERVER_REWRITEBASEPATH
  40. # value: "false"
  41. ports:
  42. - containerPort: 5601
  43. name: ui
  44. protocol: TCP
  45. #livenessProbe: #livenessProbe和readinessProbe检测可以注释,不需要启用
  46. # httpGet:
  47. # path: /api/status
  48. # port: ui
  49. # initialDelaySeconds: 5
  50. # timeoutSeconds: 10
  51. #readinessProbe:
  52. #httpGet:
  53. # path: /api/status
  54. # port: ui
  55. #initialDelaySeconds: 5
  56. #timeoutSeconds: 10

kibana-service.yaml文件内容如下(温馨提示,带有叉的都是注释行,默认原文件可能是启用状态)

  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4. name: kibana-logging
  5. namespace: kube-system
  6. labels:
  7. k8s-app: kibana-logging
  8. kubernetes.io/cluster-service: "true"
  9. addonmanager.kubernetes.io/mode: Reconcile
  10. kubernetes.io/name: "Kibana"
  11. spec:
  12. type: NodePort #添加此选项,以便能直接通过IP:端口的方式访问kibana
  13. ports:
  14. - port: 5601
  15. protocol: TCP
  16. targetPort: ui
  17. selector:
  18. k8s-app: kibana-logging

5.应用EFK的yaml所有文件,我把EFK需要的所有文件都保存到一个文件夹/root/EFK

  1. kubectl apply -f /root/EFK/

6.查看svc暴露的端口

7.可以在谷歌浏览器安装elastisearch-head连接并查看

  1. 可以在谷歌浏览器安装elastisearch-head连接并查看elasticsearch是否能正常连接上或有没有报错等之类

8.通过NodePort暴露kibana的service端口来访问kibana

Kubernetes安装EFK教程(非存储持久化方式部署)的更多相关文章

  1. Kubernetes部署Prometheus+Grafana(非存储持久化方式部署)

    1.在master节点处新建一个文件夹,用于保存下载prometheus+granfana的yaml文件 mkdir /root/prometheus cd /root/prometheus git ...

  2. 轻松加愉快的 Kubernetes 安装教程

    轻松加愉快的 Kubernetes 安装教程 马哥Linux运维 2 days ago 作者:无聊的学习者 来源:见文末 在国内安装 K8S,一直是大家很头痛的问题,各种麻烦,关键是还不知道需要下载什 ...

  3. Xmanager PowerSuite 6企业版详细安装破解教程,解决评估过期问题(附注册机,全网独家可用),非学校/家庭免费版

    title: "Xmanager PowerSuite 6企业版详细安装破解教程,解决评估过期问题(附注册机,全网独家可用),非学校/家庭免费版" categories: soft ...

  4. 二进制方式安装docker(非root用户启动docker)

    二进制方式安装docker(非root用户启动docker) 一.下载安装包: 地址:https://download.docker.com/linux/static/stable/x86_64/ 这 ...

  5. EFK教程(3) - ElasticSearch冷热数据分离

    基于ElasticSearch多实例架构,实现资源合理分配.冷热数据分离 作者:"发颠的小狼",欢迎转载与投稿 目录 ▪ 用途 ▪ 架构 ▪ 192.168.1.51 elasti ...

  6. Linux--CentOS 安装 Docker 教程

    本文主要介绍 CentOS 系统安装 Docker 的流程. 前提条件 OS 要求 CentOS7: The centos-extras repository must be enabled. Thi ...

  7. 分布式缓存Redis的持久化方式RDB和AOF

    一.前言 Redis支持两种方式的持久化,RDB和AOF.RDB会根据指定的规则“定时”将内存中的数据存储到硬盘上,AOF会在每次执行命令后将命令本身记录下来.两种持久化方式可以单独使用其中一种,但更 ...

  8. Redis5.xc两种持久化方式以及主从复制配置

    关注公众号:CoderBuff,回复"redis"获取<Redis5.x入门教程>完整版PDF. <Redis5.x入门教程>目录 第一章 · 准备工作 第 ...

  9. pod(一):Kubernetes(k8s)创建pod的两种方式

    目录 一.系统环境 二.前言 三.pod 四.创建pod 4.1 环境介绍 4.2 使用命令行的方式创建pod 4.2.1 创建最简单的pod 4.2.2 创建pod,指定镜像下载策略 4.2.3 创 ...

随机推荐

  1. 利用容器逃逸实现远程登录k8s集群节点

    某天, 某鱼说要吃瞄, 于是...... 李国宝:边缘计算k8s集群SuperEdge初体验 ​ zhuanlan.zhihu.com 图标 照着上一篇文章来说,我这边边缘计算集群有一堆节点. 每个节 ...

  2. ichartjs插件的使用

    项目中可能会用到饼状图.柱状图.环形图等,ichartjs是一个很不错的插件,体量小,只需引入ichart.1.2.1.min.js即可满足基础需求,github下载地址是:https://githu ...

  3. widnows2008双网卡双ip不同Ip段

    机房内有不同段ip,因为线路不一样,比如普通带宽和cn2带宽,现有需求配置双网卡双ip ip1: 121.7*.*.*  255.255.255.192 121.7*.*129 ip2: 103.11 ...

  4. day132:2RenMJ:MJ需求文档&MJ游戏流程&Egret白鹭引擎安装&TypeScript简要介绍

    目录 1.麻将产品需求文档 2.麻将游戏流程 3.Egret白鹭引擎 4.TypeScript简要了解 5.TypeScript快速入门 1.麻将产品需求文档 1.麻将术语 1.名词术语 牌⼦: 序数 ...

  5. Vue整合swiper报错Could not compile template .....swiper\dist\css\swiper.css解决办法

    问题描述 今天做一个前端项目,安装幻灯片插件vue-awesome-swiper后 运行npm run dev 后报错如下: `ERROR Could not compile template E:\ ...

  6. 在QML 中用javascritpt 将中文转换拼音,可以在音标

    项目需要, 今天整理了一下.在QML调用javascrit将中文汉字转换成拼音. 感觉执行效率低.下面是主要代码. 具体代码请参考QMLPinyin 代码 ```import "./piny ...

  7. 一块网卡配2IP地址

    我们知道在Linux下网卡被称为eth0,eth1,eth2.....,所有网卡的配置文件都存储在 /etc/sysconfig/network-script/下,文件名是以ifcfg-eth0,if ...

  8. 数理统计5:指数分布的参数估计,Gamma分布,Gamma分布与其他分布的联系

    今天的主角是指数分布,由此导出\(\Gamma\)分布,同样,读者应尝试一边阅读,一边独立推导出本文的结论.由于本系列为我独自完成的,缺少审阅,如果有任何错误,欢迎在评论区中指出,谢谢! 目录 Par ...

  9. 数据中心网络技术新贵:VXLAN与园区网络虚拟化

    摘要:为了应对传统数据中心网络对服务器虚拟化技术的限制,VXLAN技术应运而生. 1 概述 传统数据中心网络面临的问题 虚拟机规模受设备表项规格限制 在传统二层网络中,交换机通过查询MAC地址表来转发 ...

  10. ElasticSearch 安装与运行

    公号:码农充电站pro 主页:https://codeshellme.github.io 本节来介绍 ES 的安装. 1,下载 ES ES 是基于 Java 语言开发的,因此,要安装 ES,首先需要有 ...