当前位置: 首页 > 文档资料 > 技术文档 Cookbook >

Software-Defined Networking

优质
小牛编辑
139浏览
2023-12-01

目的

将一个应用,部署多个应用拷贝,组成一个集群,并

  • 集群内通过 POD IP 地址直接访问服务

  • 集群内通过 SVC IP 地址访问服务

  • 集群外通过路由访问服务

sdn.png

环境

  • openshift v3.11.16/kubernetes v1.11.0

步骤

创建工程

1. CLI 登录到 OCP
$ oc login https://master.example.com:8443 -u admin -p admin
2. 创建工程
$ oc new-project lab01

部署应用

1. S2I 部署 php 应用
$ oc new-app --name=lab01 -i php:7.0 https://github.com/redhat-china/scaling.git
2. 查看运行的 Pod
$ oc get pods | grep Running
lab01-1-fndbj   1/1       Running     0          6s
3. oc scale 将运行容器的数量扩展到两个
$ oc scale --replicas=2 dc lab01
4. 查看 Pod 数量,及对应 IP
$ oc get pods -o wide | grep Running
lab01-1-fndbj   1/1       Running     0          44s       10.244.2.24   node1.example.com
lab01-1-rq4xn   1/1       Running     0          6s        10.244.4.19   node2.example.com

访问容器提供的服务

根据上面步骤中输出的容器 IP 访问服务
$ curl http://10.244.2.24:8080
curl: (7) Failed connect to 10.244.2.24:8080; Connection timed out

$ curl http://10.244.4.19:8080
curl: (7) Failed connect to 10.244.4.19:8080; Connection timed out

集群内通过 POD IP 地址访问服务

1. node1 节点访问 node1 上的容器
# ssh node1.example.com
# curl http://10.244.2.24:8080
Server ID: 10.244.2.24
2. node2 节点访问 node2 上的容器
# ssh node2.example.com
# curl http://10.244.4.19:8080
Server ID: 10.244.4.19

集群内通过 SVC IP 地址访问服务

1. 获取服务的 IP 地址
$ oc get svc lab01
NAME      TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)             AGE
lab01     ClusterIP   172.30.222.149   <none>        8080/TCP,8443/TCP   11m
2. 集群外通过 SVC IP 访问容器
$ curl http://172.30.222.149:8080
curl: (7) Failed connect to 172.30.222.149:8080; Connection timed out
3. 集群内通过 SVC IP 访问容器
# for i in `seq 1 5` ; do curl http://172.30.222.149:8080 ; done
Server ID: 10.244.4.19
Server ID: 10.244.2.24
Server ID: 10.244.4.19
Server ID: 10.244.2.24
Server ID: 10.244.2.24

集群外访问服务

1. 创建路由
$ oc expose service lab01 --hostname lab01.apps.example.com
2. 集群外访问服务
$ for i in `seq 1 5` ; do curl http://lab01.apps.example.com  ; done
Server ID: 10.244.4.19
Server ID: 10.244.2.24
Server ID: 10.244.4.19
Server ID: 10.244.2.24
Server ID: 10.244.4.19

最后更新:

类似资料

  • 认证(Authentication) 身份验证是大多数现有应用程序的重要组成部分。有许多不同的方法、策略和方法来处理用户授权。我们最终决定使用什幺取决于特定的应用程序要求,并且与它们的需求密切相关。 passport 是目前最流行的 node.js 认证库,为社区所熟知,并相继应用于许多生产应用中。将此工具与 Nest 框架集成起来非常简单。为了演示,我们将设置 passport-http-bea

  • 下面是一个 XML 技术的列表。 XHTML (可扩展 HTML) 更严格更纯净的基于 XML 的 HTML 版本。 XML DOM (XML 文档对象模型) 访问和操作 XML 的标准文档模型。 XSL (可扩展样式表语言) XSL 包含三个部分: XSLT (XSL 转换) - 把 XML 转换为其他格式,比如 HTML XSL-FO (XSL 格式化对象)- 用于格式化 XML 文档的语言

  • AJAX不能独立工作。 它与其他技术结合使用来创建交互式网页。 JavaScript 松散类型的脚本语言。 在页面中发生事件时调用JavaScript函数。 整个AJAX操作的胶水。 DOM 用于访问和操作结构化文档的API。 表示XML和HTML文档的结构。 CSS 允许将演示样式与内容明确分开,并可通过JavaScript以编程方式进行更改 XMLHttpRequest 与服务器执行异步交互的

  • 可能因为是线下面,再加上公司内部信息流通比较快,一天内的上下午就面完了! 我个人还是对公司的业务非常感兴趣的!所以提前看过好几篇公司业务相关的文章 面试官人很nice,我俩基本上是我一答他一回应,所以我在这里重点挑自己印象里答得不好的地方写写。 技术面 堆和栈的区别?堆是怎么样的数据结构? 数组和链表的具体区别呢?优缺点?存取效率? 原型链?可以先答概念,在用Object和Array来解释各个指向

  • 用例是黑盒测试的功能测试,用于根据系统的使用从系统的开始到结束识别测试用例。通过使用这种技术,测试团队创建了一个测试场景,可以从头到尾根据每个功能的功能运行整个软件。 在这种情况下,有一个测试人员代表用户逐个使用系统的功能。在这种情况下,有一个演员代表用户使用软件系统的功能。 这描述了软件应用程序的逐步功能,可以通过一个例子来理解,假设存在在线资金转移的软件应用程序。转账的各个步骤如下: 用户登录

  • 主要内容:动态分区的缺点,需要分页动态分区的缺点 动态分区的主要缺点是外部碎片。 尽管这可以通过压缩来消除,但正如我们前面所讨论的那样,压缩使得系统效率低下。 我们需要找一种替代机制,以更优化的方式加载分区中的进程。 让我们讨论一个称为分页的动态灵活机制。 需要分页 让我们考虑一个大小为2 MB的进程P1和分为三个分区的主内存。 在三个分区中,两个分区是每个大小为1 MB的空洞。 P1需要在主存中加载2 MB空间。 我们有两个1M