金鱼哥RHCA回忆录:DO280OpenShift网络--创建router

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 第三章 OpenShift网络--创建router
🎹 个人简介:大家好,我是 金鱼哥,CSDN运维领域新星创作者,华为云·云享专家,阿里云社区·专家博主
📚个人资质: CCNA、HCNP、CSNA(网络分析师),软考初级、中级网络工程师、RHCSA、RHCE、RHCA、RHCI、ITIL😜
💬格言:努力不一定成功,但要想成功就必须努力🔥

🎈支持我:可点赞👍、可收藏⭐️、可留言📝

@[toc]

📜OpenShift route概述

OpenShift service允许在OpenShift中的pod之间进行网络访问;

OpenShift routes允许从OpenShift外部对pods进行网络访问。

在这里插入图片描述

路由概念上是通过连接公网IP和DNS主机名访问内网service IP。在实践中,为了提高性能和减少延迟,OpenShift route通过OpenShift创建的网络直接连接到pod,使用该服务只查找endpoint,service只是协助查询Pod地址。

OpenShift 路由功能由router service提供,该服务在OpenShift实例中作为一个pod运行,可以像任何其他常规pod一样伸缩和复制。router service基于开源软件HAProxy实现。

OpenShift route配置的公共DNS主机名需要指向运行router的节点的公共IP地址。route pod与常规应用程序pod不同,它绑定到节点的公共IP地址,而不是内部pod网络。这通常使用DNS通配符配置。

- apiVersion: v1
  kind: Route                            # 声明为route类型
  metadata:
    creationTimestamp: null
    labels:
      app: quoteapp
    name: quoteapp                        # 路由器名字
  spec:
    host: quoteapp.apps.lab.example.com    # 与route关联的FQDN,必须预先配置,以解析到OpenShift route pod运行的节点的IP地址
    port:
      targetPort: 8080-tcp
  to:                                    # 一个对象,该对象声明此route指向的资源类型(在本例中是OpenShift service),以及该资源的名称(quoteapp)
    kind: Service
    name: quoteapp

不同资源类型可以使用相同的名称,如一个名为quoteapp的route可以指向一个名为quoteapp的service。

service通过selector与pod的label进行匹配,router通过name与service的name匹配。


📜创建route

创建route最简单和推荐的方法是使用oc expose命令,将service资源名称作为输入参数。--name选项可用于控制route资源的名称,--hostname选项可用于为route提供自定义主机名。

示例:

[user@demo ~]$ oc expose service quote \
--name quote --hostname=quoteapp.apps.lab.example.com

从模板或不带--hostname参数的oc expose命令创建的路由,命名方式为:

<route-name>-<project-name>.<default-domain>

解释

route-name:route的名称,或原始资源的名称;

project-name:包含资源的项目的名称;

default-domain:该值是在OpenShift master上配置的,它对应于作为安装OpenShift先决条件列出的通配符DNS域。


例如,在OpenShift集群中名为test的project中创建一条名为quote的路由,其中子域为apps.example.com,则FQDN为quote-test.apps.example.com

注意:承载通配符域的DNS服务器不知道任何route的主机名,它只将任何名称解析为已配置的ip。只有OpenShift route知道route主机名,将每个主机都当作HTTP虚拟主机。无效的通配符域主机名,即不与任何route对应的主机名,将被OpenShift路由器阻塞。

通过向oc create提供JSON或YAML资源定义文件,也可以像其他OpenShift资源一样创建route资源。

oc new-app命令在从容器镜像、Dockerfiles或应用程序源代码构建pod时不创建route资源。

oc new-app命令不知道pod是否打算从OpenShift实例外部访问。当oc new-app命令从模板创建一组pod时,没有什么可以阻止模板将路由资源包含到应用程序中。


📜查找默认subdomain

默认路由子域是在OpenShift配置文件master-config.yaml中的routingConfig字段中定义,使用关键字subdomain。

routingConfig:
  subdomain: apps.example.com

默认情况下,OpenShift HAProxy route绑定到主机端口80 (HTTP)和443 (HTTPS)。route必须放置在这些端口不使用的节点上。或者,可以通过设置ROUTER_SERVICE_HTTP_PORT和ROUTER_SERVICE_HTTPS_PORT环境变量来配置路由器监听其他端口.

路由器支持以下协议:

  • HTTP
  • HTTPS with SNI
  • WebSockets
  • TLS with SNI

📜routing类型和选项

路由可以是安全的,也可以是非安全的。安全route提供了使用几种类型的TLS方式来向客户端提供证书的能力。不安全路由是最容易配置的,因为它们不需要密钥或证书,但是安全路由会加密进出pod的流量。

在创建安全路由之前,需要生成TLS证书。

示例:如下步骤创建名为test.example.com的路由创建一个简单的自签名证书。

  • 使用openssl命令创建私钥:
[user@demo ~]$ openssl genrsa -out example.key 2048
  • 使用生成的私钥创建证书签名请求(CSR):
[user@demo ~]$ openssl req -new -key example.key -out example.csr -subj "/C=US/ST=CA/L=Los Angeles/O=Example/OU=IT/CN=test.example.com"
  • 使用密钥和CSR生成证书
[user@demo ~]$ openssl x509 -req -days 366 -in example.csr -signkey example.key -out example.crt
  • 当证书准备好时,创建一个edge-terminated的路由
[user@demo ~]$ oc create route edge --service=test \
--hostname=test.example.com \
--key=example.key --cert=example.crt

📜通配符子域

wildcard policy允许用户定义domain中所有主机的route。route可以使用wildcardPolicy字段将wildcard policy指定为其配置的一部分。OpenShift路由器支持通配符路由,通过设置路由器部署配置中的ROUTER_ALLOW_WILDCARD_ROUTES环境变量为true,从而可将wildcardPolicy属性设置为子域的任何route都由路由器提供服务。路由器根据route的通配符策略暴露相关的service。

示例:如下下示例表示对于三个不同的路由,a.lab.example.com、b.lab.example.com和c.lab.example.com,它们应该路由到一个名为test的OpenShift服务,可以使用通配符策略配置路由。

  • 将路由器作为集群管理用户处理通配符路由
[user@demo ~]$ oc scale dc/router --replicas=0
[user@demo ~]$ oc set env dc/router ROUTER_ALLOW_WILDCARD_ROUTES=true
[user@demo ~]$ oc scale dc/router --replicas=1
  • 使用通配符策略创建新路由
[user@demo ~]$ oc expose svc test --wildcard-policy=Subdomain \
--hostname='www.lab.example.com'

📜管理route

在master节点上,在default中查找router

[root@master]# oc project default
[root@master]# oc get pods

在master节点上,检查路由器环境变量,以找到运行在pod中的HAProxy进程的连接参数

root@master]# oc env pod router-1-32toa --list | tail -n 6
ROUTER_SERVICE_NAME=router
ROUTER_SERVICE_NAMESPACE=default
ROUTER_SUBDOMAIN=
STATS_PASSWORD=shRxnWSdn9
STATS_PORT=1936
STATS_USERNAME=admin

提示:当创建路由器时,STATS_PASSWORD变量中的密码是随机生成的。STATS_USERNAME和STATS_PORT变量有固定的默认值,但是它们都可以在路由器创建时更改。


在router运行的节点上,配置firewall-cmd以打开STATS_PORT变量指定的端口。

[root@node ~]# firewall-cmd --permanent --zone=public --add-port=1936
[root@node ~]# firewall-cmd --reload

打开web浏览器并访问HAProxy statistics URL 为 http://nodeIP:STATS_PORT/。

在User Name字段中输入STATS_USERNAME的值,在Password字段中输入STATS_PASSWORD的值,然后单击OK。则会显示的HAProxy metrics页面。


💡总结

RHCA认证需要经历5门的学习与考试,还是需要花不少时间去学习与备考的,好好加油,可以噶🤪。

以上就是【金鱼哥】对 第三章 OpenShift网络--创建router 的简述和讲解。希望能对看到此文章的小伙伴有所帮助。

💾 红帽认证专栏系列:
RHCSA专栏: 戏说 RHCSA 认证
RHCE专栏: 戏说 RHCE 认证
此文章收录在RHCA专栏: RHCA 回忆录

如果这篇【文章】有帮助到你,希望可以给【金鱼哥】点个赞👍,创作不易,相比官方的陈述,我更喜欢用【通俗易懂】的文笔去讲解每一个知识点。

如果有对【运维技术】感兴趣,也欢迎关注❤️❤️❤️ 【金鱼哥】❤️❤️❤️,我将会给你带来巨大的【收获与惊喜】💕💕!

目录
相关文章
|
运维 监控 网络协议
|
JSON 运维 负载均衡
金鱼哥RHCA回忆录:DO280OpenShift网络--创建router练习与章节实验
第三章 OpenShift网络--创建router练习与章节实验
219 0
金鱼哥RHCA回忆录:DO280OpenShift网络--创建router练习与章节实验
|
运维 Kubernetes 负载均衡
金鱼哥RHCA回忆录:DO280OpenShift网络--平台网络实现
第三章 OpenShift网络--平台网络实现
228 0
金鱼哥RHCA回忆录:DO280OpenShift网络--平台网络实现
|
5天前
|
存储 安全 算法
网络安全与信息安全:漏洞、加密技术及安全意识的重要性
如今的网络环境中,网络安全威胁日益严峻,面对此类问题,除了提升相关硬件的安全性、树立法律法规及行业准则,增强网民的网络安全意识的重要性也逐渐凸显。本文梳理了2000年以来有关网络安全意识的研究,综述范围为中国知网中篇名为“网络安全意识”的期刊、硕博论文、会议论文、报纸。网络安全意识的内涵是在“网络安全”“网络安全风险”等相关概念的发展中逐渐明确并丰富起来的,但到目前为止并未出现清晰的概念界定。此领域内的实证研究主要针对网络安全意识现状与问题,其研究对象主要是青少年。网络安全意识教育方面,很多学者总结了国外的成熟经验,但在具体运用上仍缺乏考虑我国的实际状况。 内容目录: 1 网络安全意识的相关
|
2天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第31天】本文将探讨网络安全和信息安全的重要性,以及如何通过理解和应用相关的技术和策略来保护我们的信息。我们将讨论网络安全漏洞、加密技术以及如何提高安全意识等主题。无论你是IT专业人士,还是对网络安全感兴趣的普通用户,都可以从中获得有用的信息和建议。
11 1
|
2天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第31天】随着互联网的普及,网络安全问题日益突出。本文将探讨网络安全漏洞、加密技术和安全意识等方面的内容,帮助读者了解网络安全的重要性,提高自身的网络安全防护能力。
|
5天前
|
SQL 安全 算法
网络安全与信息安全:漏洞、加密技术与安全意识的交织
【10月更文挑战第28天】在数字时代的浪潮中,网络安全与信息安全成为保护个人隐私和企业资产的重要盾牌。本文将深入探讨网络安全中的常见漏洞,介绍加密技术的基本概念及其在保护数据中的应用,并强调提高安全意识的重要性。通过分析具体案例和提供实用的防护措施,旨在为读者提供一个全面的网络安全知识框架,以应对日益复杂的网络威胁。
23 4
|
4天前
|
存储 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第30天】在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术以及安全意识等方面的知识,帮助读者更好地了解网络安全的重要性,提高自己的网络安全意识和技能。
|
5天前
|
存储 安全 网络安全
云计算与网络安全:探索云服务中的信息安全技术
【10月更文挑战第29天】在数字化时代的浪潮中,云计算作为一种革命性的技术,正日益成为企业和个人数据存储与处理的首选方案。然而,随之而来的网络安全问题也愈发复杂和严峻。本文将深入探讨云计算服务中的网络安全挑战,并分析如何通过先进的信息安全技术来加强保护措施。我们将从云服务的基础知识出发,逐步深入到网络安全的各个方面,包括数据加密、身份验证、访问控制等关键技术的应用。通过理论与实践的结合,旨在为读者提供一套全面而实用的云计算安全指南。
|
5天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【10月更文挑战第28天】在数字化时代,网络安全和信息安全已经成为了我们生活中不可或缺的一部分。然而,随着技术的发展,网络安全漏洞也越来越多,加密技术和安全意识的重要性也越来越被人们所认识。本文将分享一些关于网络安全漏洞、加密技术和安全意识的知识,帮助读者更好地保护自己的网络信息安全。