![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
K8S
文章平均质量分 84
ryanlll3
这个作者很懒,什么都没留下…
展开
-
Docker Desktop安装以及MYSQL, GRAFANA安装
下载Docker Desktop根据操作系统,选择版本即可,双击完成安装。安装完成后,Sign up Docker Hub账号,并登录。原创 2022-09-09 10:47:42 · 1423 阅读 · 0 评论 -
Kubernetes集群架构
Kubernetes基础概念介绍Kubernetes集群基本构成Master节点的组件Worker节点的组件Kubernetes 容器发布流程样例Kubernetes 总体架构小结:Kubernetes集群基本构成Master: 管理和调度集群资源的。Worker Node: 资源的提供者。Worker提供的资源单位是pod,可以简单理解为K8S平台提供的虚拟机,pod里面是应用容器,容器的CPU和Memory的资源隔离单位,大部分场景,一个pod里面只住一个应用容器,有个别一些场景,一个pod原创 2021-01-01 19:44:47 · 455 阅读 · 4 评论 -
Kubernetes POD与NodePort服务发布
Kubernetes发布规范与常用命令POD发布规范及YAML文件POD发布命令POD端口转发(仅适用于调试)NodePort Service路由发布发布服务命令查找最新发布规范样例,可以在官方文档中找到。K8S API ReferencePOD发布规范及YAML文件本YAML文件以发布镜像petclinic为例。大小写需要严谨。缩进为两个空格。- 为列表格式,代表可以为多个。假设样例文件为:petclinic-pod.yml内容如下:apiVersion: v1kind: Podmeta原创 2021-01-03 02:49:00 · 1144 阅读 · 0 评论 -
Kubernetes 基于Service的蓝绿发布
K8S 蓝绿发布蓝绿发布基本原理基于Service/Selector/Label实现蓝绿发布发布两个版本POD蓝绿切换蓝绿发布基本原理蓝绿发布时一种应用升级发布方式,这种发布方式可以瞬间在老版本与新版本之间切换。可以做到用户体验无中断。为了让K8S中的应用可以支持蓝绿发布,需要在POD yaml文件、nodeport service yaml文件中,添加一个新的label - version。为了完成发布,应用升级,需要将NodePort Service中的version值手动修改为新版本。这样就完原创 2021-01-03 14:09:02 · 434 阅读 · 2 评论 -
Kubernetes ReplicaSet原理及发布样例
Kubernetes ReplicaSet原理及发布样例ReplicaSet原理传统数据中心 应用集群K8S POD 应用集群ReplicaSet 发布样例文件ReplicaSet与配套服务的发布命令ReplicaSet原理ReplicaSet可以看做是传统应用集群在K8S中的实现方式。可以赋予POD的自愈能力。比如,当POD发布文件中,设定ReplicaSet为3时,K8S会在集群中启动3个POD,当其中某个POD挂掉,K8S会自动重新启动一个,来保持POD数量为3。传统数据中心 应用集群K8S原创 2021-01-03 11:02:59 · 2194 阅读 · 0 评论 -
Kubernetes Deployment
Kubernetes Deployment滚动发布蓝绿发布K8S Deployment原理Deployment发布规范样例v1.0.0v1.0.1查看发布历史快速回滚回滚指定版本滚动发布滚动发布 Rolling Update: 高级发布策略,按批次一次替换老版本,逐步升级到新版本。发布过程中,应用不中断,用户体验平滑。如下图所示,每批次可以发布一个实例,或者多个实例,验证没有问题,可以继续发布多个实例。蓝绿发布蓝绿发布可以配置金丝雀发布,先发一个或者少量实例,验证流量,验证通过之后,可以蓝绿切换,原创 2021-01-03 12:22:34 · 169 阅读 · 0 评论 -
Kubernetes Cluster IP Service 内部反向代理
Kubernetes 内部应用间通信的反向代理后台应用间通信的传统反向代理后台应用间通信的K8S反向代理实验文件发布命令查看petclinic应用日志后台应用间通信的传统反向代理后台应用间通信的K8S反向代理实验文件本实验要创建两个POD,两个服务。下面开始准备发布文件。mysql-pod.yml - pod有状态,对可用性可靠新要求高的服务,一般不部署在K8S环境当中,而是独立的使用数据库服务。mysql-service.ymlpetclinic-deployment.yml - po原创 2021-01-03 15:38:48 · 223 阅读 · 0 评论 -
Kubernetes Namespace和Kube-DNS
Kubernetes Namespace和Kube-DNSK8S命名空间Namespage登录petclinic podK8S命名空间Namespage命名空间是K8S集群中的逻辑隔离机制,方便对K8S资源进行逻辑管理。在一个K8S集群当中,可以配置多个Namespace。每个namespace当中,可以做独立的service, replicasets, pods 等资源。不同命名空间的资源之间根据需要仍然可以相互访问。查看K8S内部已经支持存在的命名空间。kubectl get namespa原创 2021-01-03 16:11:15 · 189 阅读 · 0 评论 -
Kubernetes ConfigMap
Kubernetes ConfigMapConfigMap的原理Petclinic + ConfigMap演示发布命令ConfigMap配置更新传播机制粗暴的配置更新做法正确的配置更新做法ConfigMap的原理K8S内部支持的配置动态管理。开发人员将配置填写在ConfigMap当中,发布以后,K8S支持将ConfigMap中的配置以环境变量的形式注入到POD当中,这样POD里面的应用就可以用环境变量的方式来访问这些配置。ConfigMap也支持以存储卷volume的形式挂载到POD当中,这样POD里原创 2021-01-03 18:07:18 · 165 阅读 · 0 评论 -
Kubernetes Secrets
Kubernetes SecretsK8S Secrets配置原理演示部署架构发布命令Secrets的安全性K8S Secrets配置原理K8S Secrets用于支持敏感数据配置。Secrets是一种特殊的配置,可以提供较安全的存储和访问配置的机制。同样支持两种常见方式和POD进行绑定:环境变量 - 跟ConfigMap一样,如果以环境变量的方式跟POD绑定,配置更新的时候,需要重启POD来使用最新的secret.存储卷挂载到POD - Secrets可以做到热加载,不必要重启POD。演示原创 2021-01-03 19:47:52 · 188 阅读 · 0 评论 -
Kubernetes Volume 数据持久化
Kubernetes存储卷VolumeVolume持久化存储概念Deployment发布文件样例Volume持久化存储概念POD重启之后,原容器数据会丢失。为了让数据可以持久化存储,可以采用Volume挂载的方式避免数据丢失。Deployment发布文件样例官方样例:参考文档mysql-svc.yml文件,修改如下:注意volumeMounts 和 volumes的配置。apiVersion: v1kind: Podmetadata: name: mysql labels:原创 2021-01-03 23:02:24 · 176 阅读 · 0 评论 -
K8S存储解耦PVC和PV
K8S存储解耦PVC和PV基本概念样例文件 应用,PVC,PV解耦发布命令及顺序基本概念上篇文章讲到的volume,可以看出应用与存储volume之间有紧密的耦合,如果要迁移,需要修改发布文件。为了解决耦合问题,有了PVC,PV的抽象概念。应用,PVC,PV 三者之间的解耦。应用发布开发部门只需要知道PVC的名字就可以完成发布文件。PVC与PV的关联绑定,只以来于同一的storageClassName。PV的持久化存储路径可以让运维工程师来定义。两个新概念:Persistent Vol原创 2021-01-04 00:08:58 · 441 阅读 · 0 评论 -
Kubernetes资源请求与限制
Kubernetes资源请求与限制Request/Limit 基本概念。QOS/POD Kill 策略资源查看命令POD发布文件-资源限制配置样例实验内存超限制实验限制内存过小Request/Limit 基本概念。K8S支持在容器界别设置Request和Limit来约束容器所使用的CPU和Memory。Request表示在应用发布时,对容器所使用CPU和Memory的预估,提出的申请。K8S会根据当前工作节点的资源情况,进行调度决策,K8S会把POD调度到满足资源需求的节点上去运行。如果请求的资源不原创 2021-01-04 01:25:57 · 777 阅读 · 0 评论 -
Kubernetes Metrics Server组件与K8S Dashboard
Kubernetes Metrics Server启动metrics server组件之后:#可以使用下面命令查看pod资源使用情况。kubectl top po#可以使用下面命令查看node资源使用情况。kubectl top nometrics-server是K8S所支持的一个监控度量组件,目前metrics-server还不是K8S的正式组件,需要作为Add-on单独启用。启用之后,metrics-server可以通过cAdvisor,kubelet等组件定期去抓取pod, node原创 2021-01-04 01:45:30 · 277 阅读 · 0 评论 -
Kubernetes就绪探针和存活探针
Kubernetes就绪探针和存活探针探针原理介绍编辑微服务发布文件探针原理介绍就绪探针 Readiness Probe 流量接入的依据;了就绪探针之后,K8S可以判断POD是否已经就绪,来决策是否向POD做流量转发。否则,可能会造成POD没有就绪,K8S已经在做流量转发,应用访问报错。这种场景,多发生的replicaSet扩容,增加POD数量的时候。存活探针 Liveness Probe Kill容器(POD)的依据;下图所示样例,需要加入到微服务POD YAML发布文件里,发布之后,K8S对原创 2021-01-04 11:54:59 · 606 阅读 · 0 评论 -
Kubernetes微服务网关 vs Ingress
Kubernetes微服务网关 vs IngressK8S微服务网关K8S IngressK8S微服务网关早期web应用:加入手机端应用:没有微服务网关或者Ingress反向代理的架构:耦合度高,前端应用需要知道每一个后端应用功能的地址和变更。微服务网关的出现,将前端和后端解耦,相互独立:K8S Ingress与微服务网关的功能类似,Ingress的核心功能也是路由,反向代理。总结:微服务网关 = K8S Ingress 本质:七层反向代理,微服务集中出入口;核心功能:反向路由;高原创 2021-01-04 13:42:44 · 1153 阅读 · 0 评论 -
Kubernetes Nginx IngressController
Kubernetes Nginx IngressControllerNginx IngressController 安装安装命令Ingress暴露Petclinic微服务Nginx IngressController 安装K8S Ingress Controller官方文档:https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/找到与你环境匹配的安装方式,通过官方站点。并参照安装文档执行。如果是本地lin原创 2021-01-04 14:50:54 · 237 阅读 · 0 评论 -
Kubernetes MiniKube环境安装
Kubernetes MiniKube安装Docker InstallationConfigure Aliyun Image AcceleratorKubectl Installation配置K8S Yum源MiniKube Installation启动方法1 (root user)启动方法2 (non-root user)官方地址:https://minikube.sigs.k8s.io/docs/Github地址: https://github.com/kubernetes/minikube中文安原创 2021-01-04 23:39:48 · 814 阅读 · 0 评论 -
MiniKube EFK日志监控平台
MiniKube EFK日志监控平台EFK日志监控平台部署架构DaemonSet - FluentdEFK安装YAML 文件准备发布顺序及命令参考MiniKube安装准备环境。EFK日志监控平台部署架构EFK,集中式的日志监控平台。Elasticsearch, Fluentd, Kibana三个组件的首字母构成它的名字。Elasticsearch,分布式的搜索引擎系统,简称ES。可以用于日志数据的集中存储和检索。Fluentd,日志采集组件,可以实现日志数据的采集,装饰,转换和传输等功能。Ki原创 2021-01-06 02:48:53 · 790 阅读 · 0 评论 -
Prometheus介绍及Prometheus Operator
Prometheus介绍Promethues架构Alert ManagerPrometheus OperatorPromethues架构Retrieval: 负责定位和抓取外部的各种监控目标的metrics 时间序列数据。数据获取,prometheus是采用pull(拉)的模式,也就是是promethues server会定期到监控目标上拉取metrics,prometheus社区提供各种exporters,它们可以收集各种常见系统的指标,比如物理节点,操作系统,数据库等等。- 除了原有的Pull原创 2021-01-06 18:57:39 · 5667 阅读 · 3 评论 -
Prometheus Operator监控微服务
Prometheus Operator监控微服务Review ServiceMonitor资源配置Helm Upgrade Prometheus-Operator检验serviceMonitor配置生效发布微服务grafana dashboard configmap启动grafana UI 监控微服务指标在Kubernetes中,实现Prometheus-operator对微服务的监控,需要创建serviceMonitor定制资源,serviceMonitor的作用就是在后台监控service。具体可以原创 2021-01-26 23:01:02 · 757 阅读 · 0 评论 -
Prometheus Operator安装并用Ingress代理
Prometheus Operator安装MiniKube环境准备Prometheus Operator安装安装helmPrometheus-Operator基本功能MiniKube环境准备安装教程链接Prometheus Operator安装安装helmGithub地址helm教程helm安装官方指导helm是专门针对K8S的一个包管理工具,使用helm就不需要编写复杂的应用文件,用helm可以在K8S上查找,安装,申请,回滚,卸载应用程序。K8S中的包有个专门的术语,叫chart,就是原创 2021-01-08 02:35:48 · 2319 阅读 · 4 评论 -
Petclinic微服务项目 -Spring Cloud vs Kubernetes
Petclinic微服务项目 - K8S实验文件项目架构Petclinic微服务Github地址Petclinic Github also provides a testing plan for Jmeter. You may try to install Jmeter and play with it.A JMeter load testing script is available to stress the application and generate metrics: petclinic原创 2021-01-31 03:33:39 · 569 阅读 · 2 评论 -
微服务重构 - Kubernetes
微服务重构 - Kubernetes单体版Petclinic微服务版Petclinic本地K8S部署架构微服务YAML文件启动K8S Dashboard单体版Petclinic单体版:业务逻辑都在一套代码当中,运行时可以跑在一个POD里面。Petclinic单体版源码地址: https://github.com/spring2go/spring-petclinic-mono微服务版Petclinic单体版Petclinic重构后,微服务架构,解耦拆分如上图。重构以后,petclinic业务逻原创 2021-01-31 15:27:47 · 210 阅读 · 1 评论 -
调用链监控 - Tracing - APM
调用链监控 - Tracing - APM调用链监控原理和相关概念调用在分布式系统中的流程简述实例相关概念CAT vs Zipkin vs Skywalking埋点方式却别简述APM功能简述个人推荐调用链监控原理和相关概念微服务应用与单块应用完全不同,一个微服务系统少则有几十个微服务组成,多则可能有上百个服务。比如BAT级别的互联网公司,一般都超过上百个服务,服务之间的依赖关系错综复杂,如果没有有效的监控手段,那么出现问题很难快速排查,最终会导致业务损失。在微服务监控领域,业界的实践证明,调用链监控原创 2021-01-27 00:48:55 · 2508 阅读 · 0 评论 -
Skywalking调用链监控平台搭建
Skywalking调用链监控平台搭建Skywalking架构简介在Minikube中部署Skywalking监控平台部署YAML文件准备部署开始Skywalking架构简介Github官方站点:https://github.com/apache/skywalking服务器端: Receiver接收数据,HTTP支持UI访问,Tracing, metrics 处理模块,Analysis分析引擎,Query查询引擎UI端Skywalking Agent:无侵入式埋点Skywalking Clie原创 2021-01-30 15:23:30 · 1359 阅读 · 3 评论 -
Skywalking监控微服务
Skywalking监控微服务如何使用Skywalking Agent构建Skywalking Sidecar镜像更新目标应用微服务部署文件发布埋点后的微服务文件如何使用Skywalking AgentSkywalking Java Agent 官方说明:https://github.com/apache/skywalking/blob/master/docs/en/setup/service-agent/java-agent/README.mdSkywalking Agent 博客: 如何在容器中原创 2021-01-31 00:33:24 · 994 阅读 · 0 评论 -
JMeter压测工具安装与使用
JMeter压测工具安装与使用官方文档与说明环境准备下载JMeter下载JMeter Plugin测试计划 petclinic_test_plan.jmxJMeter打开测试文件更新测试计划配置执行测试计划官方文档与说明JMeter Pluginhttps://jmeter-plugins.org/JMeter 下载http://jmeter.apache.org/download_jmeter.cgiJMeter安装要求JAVA 8+Apache JMeter 5.4.1 (Require原创 2021-01-31 21:23:27 · 256 阅读 · 0 评论 -
CI/CD 持续交付
CI/CDCI/CDGitOpsPetclinic微服务 GitOps流水线设计CI/CD软件开发的最终目标是快速,高质量的交付客户价值。行业实践证明,持续集成(continuous integration),持续交付(continuous delivery)是微服务交付的最佳实践。CI:开发人员将代码提交到版本控制系统(gitlab)以后,将后续的软件构建,单元测试,集成测试 etc.这些环境尽可能的自动化,并将最终生成的交付件,提交到交付件仓库。CI自动化常用工具:Jenkins。CD:当交原创 2021-02-02 00:09:37 · 314 阅读 · 1 评论 -
Kubernetes网络之Pod网络(1)
Kubernetes网络概念K8S四层网络抽象Pod网络原理同一节点上的Pod网络不同节点上的Pod网络路由方案覆盖网络(Overlay方案)CNI简介K8S四层网络抽象第0层 Node节点网络用来保证K8S集群中几点之间能过通信,正常做IP寻址。一般由底层网络基础实施来支持,网络组分配IP。Pod网络原理Pod是相当于K8S云平台所提供的虚拟机,是K8S基本的调度单位。Pod网络就是能保证K8S集群中所有的Pod,无论是否同一节点上,能够互相通信,逻辑上在同一个网络内。Pod网络是构建原创 2021-02-04 00:40:15 · 1102 阅读 · 0 评论 -
Kubernetes网络之Service网络(2)
Kubernetes网络之Service网络(2)K8S服务网络实现原理Service网络概念模型DNS方案(Not Adopted)Service RegistryK8S服务发现原理服务发现之K8S方案vs Eureka+Ribbon方案上一篇:Kubernetes网络之Pod网络(1)K8S服务网络实现原理上一篇讲解了K8S中4层网络中的Pod网络,Pod网络可以让K8S集群中所有Pods在逻辑上都处于一个平面网络内,可以正常的做IP寻址和通信。但是Pod是K8S集群中的虚拟机抽象,最终我们在原创 2021-02-05 00:50:22 · 478 阅读 · 0 评论 -
Kubernetes网络之对外暴露方案(3)
Kubernetes网络之NodePort vs LoadBalancer vs Ingress(3)回顾K8S服务发现NodePortLoadBalancerIngressKubectl Proxy & Port Forward小结上一篇:Kubernetes网络之Service网络(2)回顾K8S服务发现回顾K8S服务发现原理(Kubernetes网络之Service网络(2)),kube-proxy这个角色掌握了service网络所有的信息,也可以跟Pod网络互通互联,同时又和节点网原创 2021-02-06 00:09:28 · 585 阅读 · 0 评论 -
理解Kube-Proxy
理解Kube-Proxy理解Netfilter和IptablesKube-Proxy的三种工作模式用户空间代理模式Iptables模式IPVS模式总结Kube-Proxy是实现K8S服务网络的关键底层组件,K8S的服务发现,内部Service到Pod的转发,外部流量接入内部service的网络,都是通过kube-proxy实现的。理解Netfilter和IptablesKube-Proxy是如何将cluster IP转换到Pod IP,并且将流量路由到具体的Pod上去的呢。实际上,Kube-Pro原创 2021-02-06 14:13:14 · 720 阅读 · 0 评论 -
Kubernetes Service Mesh (服务网格)
Kubernetes 服务网格什么是服务网格Kubernetes vs Service MeshRef.Istio服务网格什么是服务网格Kubernetes vs Service Mesh原创 2021-02-07 01:11:13 · 2985 阅读 · 0 评论