010.OpenShift综合实验及应用

本文档详细介绍了如何在离线环境中安装和配置OpenShift集群,包括配置节点、存储、NFS服务和安全设置。通过Ansible playbook执行安装步骤,并验证集群功能。之后,部署了一个包含MySQL和前端应用的Todo List应用,涵盖了数据库容器、Web服务器和API后端的配置,以及使用持久卷、NFS存储和 quota 策略。最后,测试了应用的完整流程并展示了访问和验证方法。
摘要由CSDN通过智能技术生成

目录

实验一 安装OpenShift
    1.1 前置准备
    1.2 配置规划
    1.3 确认Ansible
    1.4 检查Inventory
    1.5 确认节点
    1.6 准备工作
    1.7 确认验证
    1.8 检查Inventory
    1.9 安装OpenShift Ansible playbook
    1.10 Ansible安装OpenShift
    1.11 确认验证
    1.12 授权
    1.13 登录测试
    1.14 验证pod
    1.15 测试S2I
    1.16 测试服务
    1.17 实验判断
实验二 部署一个应用
    2.1 前置准备
    2.2 应用规划
    2.3 设置策略
    2.4 创建项目
    2.5 设置quota
    2.6 创建应用
    2.7 查看部署
    2.8 扩展quota
    2.9 重新部署
    2.10 配置NFS
    2.11 测试NFS
    2.12 创建PV
    2.13 导入模板
    2.14 使用dockerfile创建image
    2.15 推送仓库
    2.17 创建应用
    2.18 测试数据库
    2.19 访问测试
    2.20 创建应用
    2.21 暴露服务
    2.22 实验判断

回到顶部
实验一 安装OpenShift
1.1 前置准备

[student@workstation ~]$ lab review-install setup
1.2 配置规划

OpenShift集群有三个节点:

master.lab.example.com:OpenShift master节点,是一个不可调度pod的节点。
node1.lab.example.com:一个OpenShift节点,它可以同时运行应用程序和基础设施pod。
node2.lab.example.com:另一个OpenShift节点,它可以同时运行应用程序和基础设施pod。

所有节点都使用带有overlay2驱动程序的OverlayFS来存储Docker,每个节点中的第二个磁盘(vdb)保留给Docker存储。

所有节点都将使用基于rpm的安装,使用release v3.9和OpenShift image tag version v3.9.14。

路由的默认域是apps.lab.example.com。Classroom DNS服务器已经配置为将此域中的所有主机名解析为node1.lab.example.com。

OpenShift集群使用的所有容器image都存储在registry.lab.example.com提供的私有仓库中。

使用两个基于HTPasswd身份验证的初始用户:developer和admin,起密码都是redhat,developer作为普通用户,admin作为集群管理员。

services.lab.example.com中的NFS卷作为OpenShift内部仓库的持久存储支持。

services.lab.example.com也为集群存储提供NFS服务。

etcd也部署在master节点上,同时存储使用services.lab.example.com主机提供的NFS共享存储。

集群必须与Internet断开连接,即使用离线包形式。

内部OpenShift仓库应该由NFS持久存储支持,存储位于services.lab.example.com。

master API和控制台将在端口443上运行。

安装OpenShift所需的RPM包由已经在所有主机上使用Yum配置文件定义完成。

/home/student/DO280/labs/review-install文件夹为OpenShift集群的安装提供了一个部分完成的Ansible目录文件。这个文件夹中包含了执行安装前和安装后步骤所需的Ansible playbook。

测试应用程序由Git服务器http://services.lab.example.com/phphelloworld提供。这是一个简单的“hello, world”应用程序。可以使用Source-to-Image来部署这个应用程序,以验证OpenShift集群是否已部署成功。
1.3 确认Ansible
复制代码

1 [student@workstation ~]$ cd /home/student/DO280/labs/review-install/
2 [student@workstation review-install]$ sudo yum -y install ansible
3 [student@workstation review-install]$ ansible --version
4 [student@workstation review-install]$ cat ansible.cfg
5 [defaults]
6 remote_user = student
7 inventory = ./inventory
8 log_path = ./ansible.log
9
10 [privilege_escalation]
11 become = yes
12 become_user = root
13 become_method = sudo

复制代码

1.4 检查Inventory
复制代码

1 [student@workstation review-install]$ cp inventory.preinstall inventory #此为准备工作的Inventory
2 [student@workstation review-install]$ cat inventory
3 [workstations]
4 workstation.lab.example.com
5
6 [nfs]
7 services.lab.example.com
8
9 [masters]
10 master.lab.example.com
11
12 [etcd]
13 master.lab.example.com
14
15 [nodes]
16 master.lab.example.com
17 node1.lab.example.com
18 node2.lab.example.com
19
20 [OSEv3:children]
21 masters
22 etcd
23 nodes
24 nfs
25
26 #Variables needed by the prepare_install.yml playbook.
27 [nodes:vars]
28 registry_local=registry.lab.example.com
29 use_overlay2_driver=true
30 insecure_registry=false
31 run_docker_offline=true
32 docker_storage_device=/dev/vdb

复制代码

提示:

Inventory定义了六个主机组:

nfs:为集群存储提供nfs服务的环境中的vm;
masters:OpenShift集群中用作master角色的节点;
etcd:用于OpenShift集群的etcd服务的节点,本环境中使用master节点;
node:OpenShift集群中的node节点;
OSEv3:组成OpenShift集群的所有接待,包括master、etcd、node或nfs组中的节点。

注意:默认情况下,docker使用在线仓库下载容器映像。本环境内部无网络,因此将docker仓库配置为内部私有仓库。在yml中使用变量引入仓库配置。

此外,安装会在每个主机上配置docker守护进程,以使用overlay2 image驱动程序存储容器映像。Docker支持许多不同的image驱动。如AUFS、Btrfs、Device mapper、OverlayFS。
1.5 确认节点
复制代码

1 [student@workstation review-install]$ cat ping.yml
2 —
3 - name: Verify Connectivity
4 hosts: all
5 gather_facts: no
6 tasks:
7 - name: “Test connectivity to machines.”
8 shell: “whoami”
9 changed_when: false
10 [student@workstation review-install]$ ansible-playbook -v ping.yml

复制代码

clipboard
1.6 准备工作
复制代码

1 [student@workstation review-install]$ cat prepare_install.yml
2 —
3 - name: “Host Preparation: Docker tasks”
4 hosts: nodes
5 roles:
6 - docker-storage
7 - docker-registry-cert
8 - openshift-node
9
10 #Tasks below were not handled by the roles above.
11 tasks:
12 - name: Student Account - Docker Access
13 user:
14 name: student
15 groups: docker
16 append: yes
17
18 …
19 [student@workstation review-install]$ ansible-playbook prepare_install.yml

复制代码

clipboard

提示:如上yml引入了三个role,具体role内容参考《002.OpenShift安装与部署》2.5步骤。
1.7 确认验证

1 [student@workstation review-install]$ ssh node1 ‘docker pull rhel7:latest’ #验证是否可以正常pull image

clipboard
1.8 检查Inventory
复制代码

1 [student@workstation review-install]$ cp inventory.partial inventory #此为正常安装的完整Inventory
2 [student@workstation review-install]$ cat inventory
3 [workstations]
4 workstation.lab.example.com
5
6 [nfs]
7 services.lab.example.com
8
9 [masters]
10 master.lab.example.com
11
12 [etcd]
13 master.lab.example.com
14
15 [nodes]
16 master.lab.example.com
17 node1.lab.example.com openshift_node_labels="{‘region’:‘infra’, ‘node-role.kubernetes.io/compute’:‘true’}"
18 node2.lab.example.com openshift_node_labels="{‘region’:‘infra’, ‘node-role.kubernetes.io/compute’:‘true’}"
19
20 [OSEv3:children]
21 masters
22 etcd
23 nodes
24 nfs
25
26 #Variables needed by the prepare_install.yml playbook.
27 [nodes:vars]
28 registry_local=registry.lab.example.com
29 use_overlay2_driver=true
30 insecure_registry=false
31 run_docker_offline=true
32 docker_storage_device=/dev/vdb
33
34
35 [OSEv3:vars]
36 #General Variables
37 openshift_disable_check=disk_availability,docker_storage,memory_availability
38 openshift_deployment_type=openshift-enterprise
39 openshift_release=v3.9
40 openshift_image_tag=v3.9.14
41
42 #OpenShift Networking Variables
43 os_firewall_use_firewalld=true
44 openshift_master_api_port=443
45 openshift_master_console_port=443
46 #default subdomain
47 openshift_master_default_subdomain=apps.lab.example.com
48
49 #Cluster Authentication Variables
50 openshift_master_identity_providers=[{‘name’: ‘htpasswd_auth’, ‘login’: ‘true’, ‘challenge’: ‘true’, ‘kind’: ‘HTPasswdPasswordIdentityProvider’, ‘filename’: ‘/etc/origin/master/htpasswd’}]
51 openshift_master_htpasswd_users={‘admin’: '$apr1$4ZbKL26l 3 e K L / 6 A Q M 8 O 94 l R w T A u 61 1 ′ , ′ d e v e l o p e r ′ : ′ 3eKL/6AQM8O94lRwTAu611', 'developer': ' 3eKL/6AQM8O94lRwTAu611,developer:apr1$4ZbKL26lKaTeX parse error: Expected 'EOF', got '}' at position 24: …M8O94lRwTAu611'}̲ 52 53 #Need…{component}: v e r s i o n 74 o p e n s h i f t e x a m p l e s m o d i f y i m a g e s t r e a m s = t r u e 75 o p e n s h i f t d o c k e r a d d i t i o n a l r e g i s t r i e s = r e g i s t r y . l a b . e x a m p l e . c o m 76 o p e n s h i f t d o c k e r b l o c k e d r e g i s t r i e s = r e g i s t r y . a c c e s s . r e d h a t . c o m , d o c k e r . i o 77 o p e n s h i f t w e b c o n s o l e p r e

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值