Rancher大屏
发表于|更新于
|浏览量:



文章作者: Michael Pan
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Michael Blog!
相关推荐

2020-05-20
OpenShift-3升级Docker服务
背景介绍OpenShift是一个开源产品,自2015年3.0版本开始,它使用Kubernetes作为底层的编排引擎,已经有将近5年了。同时它也有企业级版本,服务了众多大中小企业。经过这些年生产上的实践,OpenShift 3不断完善,已经非常稳定了,但是它依赖组件多,不断增加新的功能,使用量不断增多,一些漏洞和问题会被发现。在生产环境中,运行着大量的生产级应用,我们该如何升级Docker等组件,把业务影响降到最小,这是每个企业都无法绕过的问题。Docker作为OpenShift 3默认的容器运行,它的可靠性也尤为重要。本篇就以Docker升级为例介绍如何对OpenShift组件进行升级。升级不同OpenShift组件的思路是一样,主要是如下两条。 逐个节点升级 升级前将业务应用迁走 升级Docker实操 更新yum源中的docker包 12$ cp docker-rpm/* ./extras/Packages/d/$ createrepo --update extras 迁移节点上的POD并将它设置为不可调度 1$ oc adm drain <node_name&...
2020-05-20
OpenShift-云原生容器应用设计原则
引自:容器化应用的设计原则来源自RedHat云原生容器应用设计原则白皮书 本文来自于Red Hat咨询顾问Bilgin Ibryam所编写的一篇白皮书,名为《PRINCIPLES OF CONTAINER-BASED APPLICATION DESIGN》。这篇文章在作者的Blog上发表后,作者的twitter被Kubernetes官方twitter转发。白皮书在Red Hat官网的下载地址:https://www.redhat.com/en/resources/cloud-native-container-design-whitepaper 文本是对这篇文章的学习和整理。 先回顾经典的软件设计原则: 保持简单,愚蠢(KISS) 不要重复自己(DRY) 你不会需要它 (YAGNI) 关注点分离(SoC) Single responsibility, Open/closed, Liskov substitution, Interface segregation, Dependency inversion (SOLID) 然后是Red Hat的云原生容器设计原则...
2020-05-20
Openshift-HPA(Horizontal-Pod-Autoscaler)自动伸缩过程及算法
1、HPA介绍HPA(Horizontal Pod Autoscaler)是Openshift中的一个非常重要的对象,它定义了系统如何根据收集对应的Pod的状态(CPU/Memory)对DeploymentConfig、ReplicationController对象进行扩容与缩容。 HPA依赖于收集到的Pod资源的使用状态,所以要使HPA生效,Openshift必须安装好cluster metrics应用。 被监控的pod必须设置好了spec.containers.resources.requests属性,HPA才能正常工作。 仅支持CPU/Memory使用率的判断,如果自定义监控项,只能使用经验值,不能使用使用率。 支持对象:DeploymentConfig、ReplicationController、Deployment、Replica Set。 2. HPA伸缩过程及算法 HPA进行伸缩过程 收集该HPA控制下所有Pod最近的cpu使用情况(CPU utilization) 对比在扩容条件里记录的cpu限额(CPUUtilization) 调整实...
2020-05-20
OpenShift通过EgressIP为Project设置对外的出口IP
集群管理员可以为项目分配特定的静态IP,方便外部系统能够识别项目下的应用的出口流量。 将出口IP分配到指定的Node 支持指定特定的IP 1$ oc patch hostsubnet <node-name> -p '{"egressIPs": ["192.168.1.2", "192.168.1.3"]}' 支持指定特定的IP段 1$ oc patch hostsubnet <node-name> -p '{"egressCIDRs": ["192.168.1.0/24"]}' 为项目指定静态出口IP 1$ oc patch netnamespace <project-name> -p '{"egressIPs": ["192.168.1.100"]}' OpenShift容器平...
2020-05-20
Openshift实现Etcd一键备份与一键恢复脚本
一键备份etcd脚本 123456789101112131415[root@master01 ~]# cat backup_etcd.sh#!/bin/bashexport ETCD_POD_MANIFEST="/etc/origin/node/pods/etcd.yaml"export ETCD_EP=$(grep https ${ETCD_POD_MANIFEST} | cut -d '/' -f3)oc login -u system:adminexport ETCD_POD=$(oc get pods -n kube-system | grep -o -m 1 '\S*etcd\S*')oc project kube-systemoc exec ${ETCD_POD} -c etcd -- /bin/sh -c "ETCDCTL_API=3 etcdctl --cert /etc/etcd/peer.crt --key /etc/etcd/peer.key -...
2020-05-20
OpenShift-Router配置重新加载机制
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,也可以...
