虚拟侵入

K8S : Helm 部署 ELK 7.6

|▌冷眼眸甩不掉的悲伤 提交于 2020-04-03 17:11:20
K8S : Helm 部署 ELK 7.6 场景 ​ 在 K8S 上部署有状态应用 ELK,收集日常测试数据的上报(应用拨测的 Heartbeat、调用链追踪的 APM、性能指标 metabeat 等)。本文通过rook提供底层存储,用于安装elk的statefulset,然后部署MetalLB实现本地负载均衡,最后通过ingress-control实现访问kibana。 操作步骤 1.安装rook 2.安装helm 3.安装ES 4.安装kibana 5.安装filebeat 6.安装metalLB 7.安装Ingress-control 8.访问测试 1.安装rook 1.1 安装说明 ​ Rook是专用于Cloud-Native环境的文件、块、对象存储服务。它实现了一个自我管理的、自我扩容的、自我修复的分布式存储服务。Rook支持自动部署、启动、配置、分配(provisioning)、扩容/缩容、升级、迁移、灾难恢复、监控,以及资源管理。为了实现所有这些功能,Rook依赖底层的容器编排平台。 ​ Ceph是一个分布式存储系统,支持文件、块、对象存储,在生产环境中被广泛应用。 ​ 此次安装就是通过rook进行ceph进行部署,简化了ceph的安装管理配置。同时也是为了能够利用本地资源。提供storageclass。 1.2 rook和ceph架构 1.2 安装ceph

kubernetes的访问方式(10)

拟墨画扇 提交于 2020-04-02 18:33:59
k8s是一个全新的编排方式,但是它的通信方式也是比较复杂的,而且种类也比较的多。 最常见的是就比如我们通过service 查看到的, 接下来我们会创建不同的访问方式,给大家演示效果 hostNetwork、hostPort、NodePort、LoadBalancer、Ingress、clusterip 一共包括6中通信方式,其中clusterip是不对外开放的,只是集群内部使用 yaml文件我已经放到了百度网盘 解压可以使用 链接: https://pan.baidu.com/s/1YNnNZamlW325x5spVjw4Ig 提取码:wbtg 然后倒入镜像 docker load < gcr.io#google_containers#defaultbackend.tar docker tag 452a96d81c30 gcr.io/google_containers/defaultbackend 然后解压tar包,里面就是yaml问题件 1、首先我们介绍下hostNetwork这种访问方式: 然后创建一下 kubectl create -f nginx.yaml 去node1上面查看一下 访问测试一下 这里只能node1可以访问,其他node节点访问是不行的 修改一下副本数量验证一下 kubectl edit deployment nginx 这次其他node节点也就可以

kubernetes Ingress、Ingress controller

牧云@^-^@ 提交于 2020-04-01 14:31:19
前言 拥抱开源,无私分享,共享技术,相互学习,共同进步,分享更多有深度的文章,欢迎转发分享 四层负载均衡调度器service回顾 使用四层负载均衡调度器service时,当客户端访问kubernetes集群内部的应用时,数据包走向如下面流程所示 client--->nodeip:port--->service ip:port--->podip:port 客户端-->node节点的ip:端口--->service的ip:端口--->pod的ip:端口 1.Ingress Controller Ingress Controller是一个七层负载均衡调度器,客户端的请求先到达这个七层负载均衡调度器,由七层负载均衡器在反向代理到后端pod,常见的七层负载均衡器有nginx,traefik等,以我们熟悉的nginx为例,假如请求到达nginx,会通过upstream反向代理到后端pod,但是后端pod的ip地址是一直在变化的,因此在后端pod前需要加一个service,这个service只是起到分组的作用,那么我们upstream只需要填写service地址即可 nginx:需要手动加载配置文件 traefik:定期自动加载配置文件,不需要手动干预,在微服务中几乎都会使用这种调度器 2.Ingress 官方: https://kubernetes.io/docs/concepts

kubernetes Ingress、Ingress controller

耗尽温柔 提交于 2020-04-01 14:30:55
前言 拥抱开源,无私分享,共享技术,相互学习,共同进步,分享更多有深度的文章,欢迎转发分享 四层负载均衡调度器service回顾 使用四层负载均衡调度器service时,当客户端访问kubernetes集群内部的应用时,数据包走向如下面流程所示 client--->nodeip:port--->service ip:port--->podip:port 客户端-->node节点的ip:端口--->service的ip:端口--->pod的ip:端口 1.Ingress Controller Ingress Controller是一个七层负载均衡调度器,客户端的请求先到达这个七层负载均衡调度器,由七层负载均衡器在反向代理到后端pod,常见的七层负载均衡器有nginx,traefik等,以我们熟悉的nginx为例,假如请求到达nginx,会通过upstream反向代理到后端pod,但是后端pod的ip地址是一直在变化的,因此在后端pod前需要加一个service,这个service只是起到分组的作用,那么我们upstream只需要填写service地址即可 nginx:需要手动加载配置文件 traefik:定期自动加载配置文件,不需要手动干预,在微服务中几乎都会使用这种调度器 2.Ingress 官方: https://kubernetes.io/docs/concepts

Kubernetes中安装traefik ingress

ⅰ亾dé卋堺 提交于 2020-03-29 23:32:54
Kubernetes中安装traefik ingress # 下载配置清单 wget https://github.com/containous/traefik/tree/v1.7/examples/k8s # 链接中以traefik-开头的文件有3个,都可以见名知意,其中traefik-deployment.yaml我们这里没有用到 # traefik-deployment.yaml跟traefik-ds.yaml二者选其一即可,由于底下的配置是根据traefik-ds.yaml来的所以建议使用 # ui.yaml 是定义traefik 的dashboard的svc及ingress 这里没有用是因为8080端口直接监听在node上的 下载上面链接中以下两个文件 traefik-rbac.yaml traefik-ds.yaml # 由于默认通过svc使用NodePort,且端口范围只能是30000-32767,如果kubernetes是编译安装的则可自定义端口范围 # 这里使用的是kubeadm安装的,所以只能使用30000-32767了 # 这里说下为什么使用30000-32767端口范围不方便,主要是因为内部一些项目需要调用其他项目的域名,而域名则是通过 # ingress来发布对外服务的,如果不是80端口的话就需要在

04-kubernetes网络通信

左心房为你撑大大i 提交于 2020-03-20 06:37:39
目录 kubernetes网络通信 需要解决的问题 flannel Calico/Cannel kubernetes网络通信 需要解决的问题 同一个pod内部的不同容器间通信, local Pod间的通信 pod与Service的通信: PodIP<--->ClusterIP Service 与集群外部通信 CNI: 常见的解决方案 flannel calico canel kube-router 解决方案: 虚拟网桥:brige方案 多路复用:MacVLAN(二层方案) 硬件交换:SR-IOV flannel 查看集群的flannel 配置文件 将配置文件放到/etc/cni/net.d目录下, kubelet 会加载该文件。 cat /etc/cni/net.d/10-flannel.conflist flannel不支持网络策略 不同namespace 的pod 可以相互通信 支持多种方式后端 Vxlan 工作原理 vxlan Directrouting # 同网段使用host-gw 不同网段使用vxlan host-gw: Host Gateway 工作原理 UDP: 效率很低 flannel 的配置参数: network 使用CIRD格式的网络地址: 10.244.0.0/16 -> master: 10.244.0.0/24 ​ node1: 10.244.1.0/24

K8S实践Ⅹ(Helm)

六月ゝ 毕业季﹏ 提交于 2020-03-18 13:49:56
一、Helm概述 1.Helm简介 helm类似于Linxu系统下的包管理工具,如yum、apt等,主要用于Kubernetes应用程序 Chart的创建、打包、发布以及创建和管理本地和远程的Chart仓库。 2.Helm组件 helm:本地客户端工具,主要用于kubernetes应用chart的创建/打包/发布以及创建和管理和远程Chart仓库。 Tiller:helm的服务端,部署于kubernetes内,Tiller接受helm的请求,并根据chart生成kubernetes部署文件(helm称为release),然后提交给 Kubernetes创建应用。Tiller还提供了Release的升级、删除、回滚等一系列功能。 Chart:helm的软件包,采用tar格式,其中包含运行一个应用所需的所有镜像/依赖/资源定义等,还可能包含kubernetes集群中服务定义,类似于yum的rpm文件 Release:在kubernetes中集群中运行的一个Chart实例,在同一个集群上,一个Chart可以安装多次,每次安装均会生成一个新的release。 Repository:用于发布和存储Chart的仓库 二、Helm部署 1.安装Helm # wget https://get.helm.sh/helm-v2.14.3-linux-amd64.tar.gz # tar -zxvf

kubernetes 的 ingress 配置部署

ぐ巨炮叔叔 提交于 2020-03-13 13:33:55
kubernetes 的 ingress 配置部署 标签(空格分隔): kubernetes系列 一:kubernetes 的 ingress 一:kubernetes 的 nginx ingress 1.1 ingress-nginx的部署 Ingress-Nginx github 地址:https://github.com/kubernetes/ingress-nginx Ingress-Nginx 官方网站:https://kubernetes.github.io/ingress-nginx/ 部署: wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.30.0/deploy/static/mandatory.yaml wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.30.0/deploy/static/provider/baremetal/service-nodeport.yaml kubectl apply -f mandatory.yaml kubectl apply -f service-nodeport.yaml ---- 所有节点上传ingress-contro.tar 文件

深入理解 Ingress

大城市里の小女人 提交于 2020-03-09 10:09:55
Ingress为弥补NodePort不足而生 NodePort一些不足: • 一个端口只能一个服务使用,端口需提前规划 • 只支持4层负载均衡 nginx 动态感知pod ip 的变化,根据变化动态设置nginx 的upstream,并实现负载均衡 ingress controller 动态刷新 pod ip 列表 更新到 nginx 的配置文件 Pod与Ingress的关系 通过Service相关联 通过Ingress Controller实现Pod的负载均衡 - 支持TCP/UDP 4层和HTTP 7层 Ingress Controller 1. 部署Ingress Controller Nginx:官方维护的Ingress Controller 部署文档:https://github.com/kubernetes/ingress-nginx/blob/master/docs/deploy/index.md 注意事项: • 镜像地址修改成国内的:registry.aliyuncs.com/google_containers/nginx-ingress-controller:0.26.1 • 使用宿主机网络:hostNetwork: true wget https://raw.githubusercontent.com/kubernetes/ingress-nginx

12、Kubernetes Ingress

|▌冷眼眸甩不掉的悲伤 提交于 2020-03-06 01:43:51
资料信息 Ingress-Nginx github 地址: https://github.com/kubernetes/ingress-nginx Ingress-Nginx 官方网站: https://kubernetes.github.io/ingress-nginx/ Ingress HTTP 代理访问 deployment、Service、Ingress Yaml 文件 apiVersion : extensions / v1beta1 kind : Deployment metadata : name : nginx - dm spec : replicas : 2 template : metadata : labels : name : nginx spec : containers : - name : nginx image : wangyanglinux / myapp : v1 imagePullPolicy : IfNotPresent ports : - containerPort : 80 apiVersion : v1 kind : Service metadata : name : nginx - svc spec : ports : - port : 80 targetPort : 80 protocol : TCP selector : name