OpenShift 4 之让Route只运行在集群中Infra节点
很多OpenShift的用户都非常喜欢其自带的Route功能,Route为外部用户提供了访问Pod的负载均衡功能,它要比Kubernetes缺省提供的Ingress功能强大很多。有关介绍可参见《OpenShift 4之Route与Ingress》。
OpenShift的Route是通过Pod运行的,因此如果不指定运行环境,Route的Pod可能会运行在Worker甚至Masrer类型的节点上。
首先可以执行命令可以查看Route运行在哪些OpenShift集群节点上:
$ oc get pod -n openshift-ingress -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE
router-default-5fc6c9ffbb-9x9l8 1/1 Running 0 15h 10.131.0.7 ip-10-0-135-227.ap-southeast-1.compute.internal <none>
router-default-5fc6c9ffbb-p5x6d 1/1 Running 0 15h 10.131.0.8 ip-10-0-135-227.ap-southeast-1.compute.internal <none>
然后可以进一步确认这些节点在集群中的角色,例如以下是"worker"类型节点。
$ oc get node ip-10-0-135-227.ap-southeast-1.compute.internal
NAME STATUS ROLES AGE VERSION
ip-10-0-135-227.ap-southeast-1.compute.internal Ready worker 15h v1.12.4+4dd65df23d
查看名为default的ingresscontroller配置,其中包括决定route运行在哪些节点的nodeSelector信息(以下是“node-role.kubernetes.io/worker”)。
$ oc get ingresscontroller default -n openshift-ingress-operator -o yaml
apiVersion: operator.openshift.io/v1
kind: IngressController
metadata:creationTimestamp: "2019-11-22T16:16:15Z"finalizers:- ingresscontroller.operator.openshift.io/finalizer-ingresscontrollergeneration: 2name: defaultnamespace: openshift-ingress-operatorresourceVersion: "23004"selfLink: /apis/operator.openshift.io/v1/namespaces/openshift-ingress-operator/ingresscontrollers/defaultuid: 689bc509-0d43-11ea-aca5-525400baad9b
spec:defaultCertificateSecret: nullhighAvailability: nullingressDomain: nullnamespaceSelector: nullnodePlacement:nodeSelector:matchLabels:node-role.kubernetes.io/worker: ""replicas: 2routeSelector: nullunsupportedExtensions: null
编辑default的ingresscontroller,将运行节点的标签改为“node-role.kubernetes.io/infra”。
$ oc get ingresscontroller default -n openshift-ingress-operator -o yaml
将节点改成“node-role.kubernetes.io/infra”。
nodePlacement:nodeSelector:matchLabels:node-role.kubernetes.io/infra: ""
可以查看OpenShift对router pod的调整,它会通过混动升级的方式先停掉运行在Worker节点的Pod,然后会在Infra节点上运行router的Pod。
$ oc get pod -n openshift-ingress -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE
router-default-5fc6c9ffbb-9x9l8 1/1 Running 0 15h 10.131.0.7 ip-10-0-131-124.ap-southeast-1.compute.internal <none>
router-default-5fc6c9ffbb-p5x6d 0/1 Terminating 0 15h 10.131.0.8 ip-10-0-135-227.ap-southeast-1.compute.internal <none>
。
。
。
router-default-5fc6c9ffbb-2jtrx 1/1 Running 0 70s 10.131.2.5 ip-10-0-142-239.ap-southeast-1.compute.internal <none>
router-default-5fc6c9ffbb-jplph 1/1 Running 0 83s 10.128.4.6 ip-10-0-133-204.ap-southeast-1.compute.internal <none>
最后可以确认运行router的节点是具备infra的角色节点:
oc get node ip-10-0-142-239.ap-southeast-1.compute.internal
NAME STATUS ROLES AGE VERSION
ip-10-0-142-239.ap-southeast-1.compute.internal Ready infra,worker 19m v1.12.4+4dd65df23d
OpenShift 4 之让Route只运行在集群中Infra节点相关推荐
- K8S集群中Node节点资源不足导致Pod无法运行的故障排查思路
K8S集群中Node节点资源不足导致Pod无法运行的故障排查思路 文章目录 K8S集群中Node节点资源不足导致Pod无法运行的故障排查思路 1.Node节点资源不足可能会产生的故障 2.Node节点 ...
- OpenShift 4 - 用KubeletConfig和ContainerRuntimeConfig分别修改集群节点的Kubelet和cri-o的配置
<OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.6环境中验证 文章目录 Kubelet.KubeletConfig和KubeletConfigCon ...
- Spark在不同集群中的运行架构
Spark注重建立良好的生态系统,它不仅支持多种外部文件存储系统,提供了多种多样的集群运行模式.部署在单台机器上时,既可以用本地(Local)模式运行,也可以使用伪分布式模式来运行:当以分布式集群部署 ...
- 在多节点集群中运行Cassandra
这篇文章收集了我在多节点中设置Apache Cassandra集群的步骤. 在设置集群时,我已经参考了Cassandra Wiki和Datastax文档. 详细介绍了以下过程,分享了我建立群集的经验. ...
- OpenShift 4 - 如何用Machine Config Operator修改集群节点CoreOS的配置
<OpenShift 4.x HOL教程汇总> 说明:本文已经在OpenShift 4.6环境中验证 文章目录 OpenShift 4 和 RHCOS MachineConfig相关概念 ...
- OpenShift 4 - 利用 File Integrity Operator 实现对集群节点进行入侵检测
<OpenShift / RHEL / DevSecOps 汇总目录> 说明:本文已经在OpenShift 4.9环境中验证 文章目录 File Integrity Operator 功能 ...
- 使用docker engine 运行时 集群部署 kubernetes v1.23
硬件环境: 使用 VMware16 模拟3台服务器,建立1个control plane(master),2个work 节点的kubernetes集群 使用 Ubuntu server 20.04 TL ...
- 逃脱只会部署集群系列 —— Kubeadm部署v1.18.0与ETCD操作
目录 一.Kubeadm部署K8s1.18.0版本 1. 安装要求 2.环境准备 3. docker安装[所有节点都需要安装] 4.docker配置cgroup驱动[所有节点] 5.镜像加速[所有节点 ...
- strom-1.1.0模拟单词统计功能,Spout编写,Bolt编写,TopologyDriver编写,本地模式运行,集群模式运行,集群模式下看输出结果
统计文本中的单词出现的频率,其中文本内容如下: 创建项目 项目结构如下: 创建pom.xml,代码如下: <?xml version="1.0" encoding=" ...
最新文章
- Linux内核模块编程入门
- 2021年春季学期-信号与系统-第十五次作业参考答案-第五小题参考答案
- DevOps滚动部署
- vue中create 什么触发_vue中eventbus被多次触发(vue中使用eventbus踩过的坑)
- Nginx 负载均衡器(1+2)
- [scala-spark]1. Spark vs Hadoop 及 基础
- 状态模式和策略模式的区别
- C ++中的std :: binary_search()
- 编码-京东实习笔试编程题-生日礼物-动态规划
- 计算机重启是什么原因,电脑自动重启,该怎么办,到底是什么原因,我来详细说明?...
- 美国IARPA发起人脸识别算法融合大奖赛
- 全方位测评Hive、SparkSQL、Presto 等七个大数据查询引擎,最快的竟是……| 程序员硬核测评...
- 大数据时代 银行信息安全如何防护?
- mysql public owner_OWNER支持配置文件目录的继承
- 香港城门隧道翻车意外酿一死16伤
- 如何用 Python 识别车牌?
- 单片机编程软件很简单(12),Keil单片机编程软件配置操作
- 京东商城API 商品详情接口
- vdi转vmdk VirtualBox与VMware硬盘格式转换及使用方法
- 飞控之扩展卡尔曼滤波(附matlab和C代码)