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

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 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练习与章节实验
229 0
金鱼哥RHCA回忆录:DO280OpenShift网络--创建router练习与章节实验
|
运维 Kubernetes 负载均衡
金鱼哥RHCA回忆录:DO280OpenShift网络--平台网络实现
第三章 OpenShift网络--平台网络实现
234 0
金鱼哥RHCA回忆录:DO280OpenShift网络--平台网络实现
|
5天前
|
SQL 安全 网络安全
网络安全与信息安全:知识分享####
【10月更文挑战第21天】 随着数字化时代的快速发展,网络安全和信息安全已成为个人和企业不可忽视的关键问题。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性,并提供一些实用的建议,帮助读者提高自身的网络安全防护能力。 ####
42 17
|
16天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。
|
17天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将从网络安全漏洞、加密技术和安全意识三个方面进行探讨,旨在提高读者对网络安全的认识和防范能力。通过分析常见的网络安全漏洞,介绍加密技术的基本原理和应用,以及强调安全意识的重要性,帮助读者更好地保护自己的网络信息安全。
39 10
|
18天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的内容,并提供一些实用的代码示例。通过阅读本文,您将了解到如何保护自己的网络安全,以及如何提高自己的信息安全意识。
45 10
|
18天前
|
存储 监控 安全
云计算与网络安全:云服务、网络安全、信息安全等技术领域的融合与挑战
本文将探讨云计算与网络安全之间的关系,以及它们在云服务、网络安全和信息安全等技术领域中的融合与挑战。我们将分析云计算的优势和风险,以及如何通过网络安全措施来保护数据和应用程序。我们还将讨论如何确保云服务的可用性和可靠性,以及如何处理网络攻击和数据泄露等问题。最后,我们将提供一些关于如何在云计算环境中实现网络安全的建议和最佳实践。
|
20天前
|
监控 安全 网络安全
网络安全与信息安全:漏洞、加密与意识的交织
在数字时代的浪潮中,网络安全与信息安全成为维护数据完整性、保密性和可用性的关键。本文深入探讨了网络安全中的漏洞概念、加密技术的应用以及提升安全意识的重要性。通过实际案例分析,揭示了网络攻击的常见模式和防御策略,强调了教育和技术并重的安全理念。旨在为读者提供一套全面的网络安全知识框架,从而在日益复杂的网络环境中保护个人和组织的资产安全。
|
17天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
在数字化时代,网络安全和信息安全已成为我们日常生活中不可或缺的一部分。本文将深入探讨网络安全漏洞、加密技术和安全意识等方面的问题,并提供一些实用的建议和解决方案。我们将通过分析网络攻击的常见形式,揭示网络安全的脆弱性,并介绍如何利用加密技术来保护数据。此外,我们还将强调提高个人和企业的安全意识的重要性,以应对日益复杂的网络威胁。无论你是普通用户还是IT专业人士,这篇文章都将为你提供有价值的见解和指导。
下一篇
DataWorks