avatar
文章
238
标签
38
分类
9

主页
归档
标签
分类
Michael Blog
搜索
主页
归档
标签
分类

Michael Blog

OpenShift-Kubernetes中易理解错误的问题汇总
发表于2020-05-20
###1. readiness健康检查一直失败,Pod会不会重启? 不会,一直处于Running状态,但Not Ready。 2. Pod重启时,Pod的容器是重启,还是重新创建? POD容器不动,应用容器是重新创建。POD IP保持不变,但应用容器中的临时文件会丢失。 ###3. 如果更改Deployment的配置后,马上将配置恢复回去,应用Pod是否会触发重新部署?不会,恢复回去后不会创建新的RS。 4. master_cluster_hostname与master_cluster_public_hostname的区别master_cluster_hostname是集群内部组件使用的域名master_cluster_public_hostname是集群外部使用的域名###5. 对于高可用集群中,3个master节点是完全相同的吗?openshift 不是,虽然它们的运行态是完全一致的,但是在OpenShift的运维脚本中是有区分的,如集群扩容时。有一台是主master(inventory中的第一台),它会单独保存集群的证书及一些配置。 ###6. 对于statefulset类型 ...
OpenShift-Kubernetes集群-Calico-BGP管理工具calicoctl配置
发表于2020-05-20
calico 是容器网络的一种解决方案,也是当前最流行的方案之一。它完全利用路由规则实现动态组网,通过BGP协议通告路由。Calico BGP没有像ovs那样需要封包解包,所以它的网络性能更好。管理calico网络免不了使用calicoctl工具,本篇介绍如何在OpenShift/Kubernetes环境下,配置calicoctl来管理集群网络。 calico元数据支持两种存储类:etcd与kubernetes 安装calicoctl12$ curl -O -L https://github.com/projectcalico/calicoctl/releases/download/v3.10.0/calicoctl$ chmod a+x calicoctl 确认Calico部署时使用的元数据存储类型,查看calico-config1$ oc describe cm calico-config -n kube-system | grep datastore_type 可以为kubernetes、etcdv3。默认为etcdv3。设置为kubernetes时表示直接使用k8 ...
OpenShift-Master1彻底挂了,如何恢复?
发表于2020-05-20
小强维护着一套生成的OpenShift集群,突然有一天集群的master1节点出现异常,自动关机了。他尝试了多次,都无法开机,怎么办?他需要赶快恢复master1节点,来满足集群的高可用性。 原来的masters在ansible/hosts中的顺序如下 1234567891011121314[masters]master1 ## 重要主节点,安装完后单独保存/etc/etcd/ca中的证书master2master3[etcd]master1master2master3[nodes]master1master2master3 恢复过程如下: 新建一台 master1节点,hostname 与 IP 都和原 master1 节点一致 在master2上恢复master主节点的证书、ca.serial.txt及openshift软件。 通过新增 master 的方式将这个节点重新加回集群 通过新增 etcd 的方法,恢复了这台 master 节点 etcd 的状况 以下是恢复的具体步骤。 一、初始化Master节点 与部署机互信 开启selinux 关闭firewall ...
OpenShift-Prometheus使用集群外部Prometheus级联的方法实现多集群统一监控告警
发表于2020-05-20
背景大家知道OpenShfit官方通过Prometheus Operator可以快速构建高可用的监控告警平台,它不仅能够收集集群本身的监控指标,还可以通过ServiceMonitor扩展以监控应用自身的指标,实现单集群内部的统一监控。但是生产实践中,我们并不会只采用一个OpenShift部署应用,还会部署非容器应用,在非容器环境下也可能会部署Prometheus来监控相关服务(特别是现在Prometheus已经成为了监控的一个标配),甚至有可能会在不同的网络区部署多个集群,由于不同网络的隔离特性显然一组Prometheus是无法满足所有平台及应用的监控的。这就使得生产中会有很多套Prometheus集群需要管理与维护,查看监控指标也很分散,也就让我们想到必须采用一种办法能够将各处的指标统一收集,实现多集群多Prometheus服务的统一监控。目前实现这种要求的方法主要有两个,一个是通过Prometheus联邦 Federate,另一个是通过Thanos。今天主要介绍集群外部如何使用Prometheus联邦机制收集OpenShift内部Prometheus服务的监控指标。 操作实现其实 ...
OpenShift-Prometheus添加Alert-Rules
发表于2020-05-20
prometheus.yml配置中绑定alertmanager服务 1234567......alerting: alertmanagers: - scheme: http static_configs: - targets: - "localhost:9093" prometheus.rules设置prometheus告警规则 12345678910...rules:- alert: TooManyPods expr: kuberlet_running_pod_count > 10 for: 2m labels: team: node annotations: summary: "{{$labels.instance}}: has {{$value}} pods" description: "{{$labels.instance}} be cateful ...
OpenShift-Router通过分片实现不同环境网络南北流量隔离
发表于2020-05-20
在企业实践中,通常会部署多个OpenShift集群:开发测试、生产等。每个集群都是独立的,通过物理资源进行隔离。这种方式管理简单,易于理解,但是消耗的资源更多,每个集群都需要额外的控制节点及运维节点。有没有办法,使不同环境运行在同一个集群上,并且它们之间实现隔离呢?答案是可以的。对于不同的环境,做好资源隔离,我们需要对计算资源——宿主机做好规划,同时还需要对网络做好规划。宿主机的隔离,可以通过给主机添加label的方法,规划pod的调度。本篇中,我们只针对网络Route部分做好开发测试环境与生产环境的隔离。 OpenShift集群Route分片机制大家都知道OpenShift管理南北流量是通过Route来实现的,所谓的Route本质就是一个Haproxy/Nginx服务,与K8S中的Ingress类似。默认情况下,OpenShift集群的Router是全局共用的,也就是说,在创建新的Route资源、Pod更新或者证书更新时,所有的OpenShift Router Pod都会更新Haproxy/Nginx的配置,并重新加载。所有的Route后台应用可以通过任一Rout ...
OpenShift-Router配置重新加载机制
发表于2020-05-20
OpenShift的Router是几乎所有南北流量的入口,对它的运行机制的了解非常重要,尤其是Router的配置更新加载机制。在服务请求出现异常情况下,我们能够快速分析出问题的原因,及时修复,保证应用的连续性。本章主要介绍OpenShift Router的配置加载机制。 OpenShift路由默认是基于Haproxy实现的。当Pod有更新或者证书更新等情况时会重新加载Haproxy的配置,来保证集群的路由信息是最新的。重载配置是否会对当前在线业务产生影响,这是系统管理员担心的问题。 一、 Haproxy配置重载的过程Haproxy在重新加载配置过程分两步。 生成最新的配置 重启Haproxy进程 Haproxy生成最新的配置OpenShift上以下三种资源的改变会触发Haproxy配置的更新 Routes改变 Pod IP/Endpoint 改变 证书改变 OpenShift Route有一个配置模板文件,最终的配置会根据这个模板文件来创建。该模板文件,默认路径为/var/lib/haproxy/conf/haproxy-config.template,也可以通过环 ...
OpenShift-Route会话保持与负载均衡策略
发表于2020-05-20
Route会话保持OpenShift Router是基于Haproxy反向代理实现的,客户端请求与后端应用POD通过cookie来实现会话保持。 默认是开启会话保持的,基于cookie的会话保持。 如果设置haproxy.router.openshift.io/disable_cookies为True,将会禁用基于cookie的会话保持,而使用balance的负载策略。 此过程分为两个阶段:第一次请求阶段、再次发起请求阶段 第一次请求阶段客户端发起第一次请求时,Router会给返回的数据中添加一条指定的cookie。 客户端请求到达Router节点。 Router节点通过默认的负载均衡策略选择后端应用POD。 后端应用POD返回数据到Router节点。 Router根据后端应用POD,给返回的数据包set-cookie: cookiename[HASH值]=cookievalue(HASH值),有效期为SESSION(浏览器客户端关闭前有效)。 再次发起请求阶段客户端再次发起请求时,会带上第一次Router设置的cookie,Router根据该cookie值选择对应的 ...
OpenShift-Route支持TCP负载均衡改造与使用
发表于2020-05-20
Route作为TCP负载均衡器的部署 获取当前Route的haproxy-template配置12345# oc project default# oc get podNAME READY STATUS RESTARTS AGErouter-16-5rv4q 2/2 Running 2 18h# oc rsh router-16-5rv4q cat haproxy-config.template > haproxy-config.template 编辑导出的haproxy-config.template文件在内容{{- end }}{{/*end tls==passthrough*/}}下一行,添加以下内容:1234567891011{{/*TCP support*/}}{{- if eq "tcp" (index $cfg.An ...
OpenShift-Service的域名
发表于2020-05-20
正常情况下Service的域名格式为:service-name.project-name.svc.cluster.local对应的IP是Service Cluster IP 设置Service的clusterIP=NoneService的域名格式为:service-name.project-name.svc.cluster.local对应的IP是后台对应的Pod的容器的IP同时后台对应的Pod都有DNS记录,格式为Pod-name.service-name.project-name.svc.cluster.local
1…101112…24
avatar
Michael Pan
日积硅步以致千里,记录日常工作与学习
文章
238
标签
38
分类
9
Follow Me
最新文章
Kubernetes云原生存储解决方案 - Longhorn安装指南2025-04-25
使用Python开发自己的MCP服务:AI能力扩展入门指南2025-04-16
使用NSSM将程序注册为Windows服务2025-03-24
在Cursor中配置MCP2025-03-19
在本地电脑部署AI大模型2024-11-30
分类
  • AI1
    • 开发1
  • DevOps1
    • Kubernetes1
  • devops1
  • 教程4
  • 读书笔记5
    • devops3
标签
infra pandas jenkins Python shell devops MCP kubernetes Longhorn selenium Kubernetes 存储 ai openshift hexo 读书笔记 github nginx vault tool nssm 大语言模型 机器学习 大数据 proxy docker cursor python mcp butterfly ansible windows container golang monitor AI开发 operator infra tools
归档
  • 四月 20252
  • 三月 20252
  • 十一月 20242
  • 十月 20241
  • 八月 20241
  • 四月 20241
  • 十二月 20232
  • 十月 20231
网站资讯
文章数目 :
238
本站访客数 :
本站总访问量 :
最后更新时间 :
©2023 - 2025 By Michael Pan
搜索
数据库加载中