《开源容器云OpenShift:构建基于Kubernetes的企业应用云平台》一第2章 初探OpenShift容器云2.1 启动OpenShift Origin

简介:

本节书摘来自华章出版社《开源容器云OpenShift:构建基于Kubernetes的企业应用云平台》一书中的第2章,第2.1节,作者 陈耿 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看

第2章 初探OpenShift容器云

在前面的章节我们一起探讨了容器云的概念以及OpenShift容器云项目的情况。理论联系实际,为了对OpenShift容器云有更直接的认识,本章将会帮助你快速地在自己的个人电脑上搭建一个可用的OpenShift环境,并在这个环境上运行我们的第一个容器应用。这里假设你对Linux及Docker已经有了基本的了解,并掌握了基本的使用命令。对Docker不熟悉的读者,请参考dockone.io的Docker入门教程(http://dockone.io/article/111)。

2.1 启动OpenShift Origin

OpenShift支持运行在基础架构之上,同时支持多种安装方式。
手工安装。用户下载OpenShift的二进制包,手动进行配置和启动。
快速安装。通过OpenShift提供的交互式Installer进行安装。
高级安装。在多节点集群的环境中,OpenShift可通过Ansible对多台集群主机进行自动化安装和配置。
Docker镜像。通过运行OpenShift的Docker镜像启动一个All-in-One的OpenShift容器实例。这适合开发测试人员快速部署和验证。
OpenShf?it Origin 1.3.0提供了一个全新的命令oc cluster up帮助开发用户快速启动一个可用的OpenShift集群。
为了尽可能了解OpenShift的细节,这里使用手动安装方式快速启动一个可用的Open-Shift Origin实例,这个方法也适用于开发和测试。在实际的多节点集群环境中,OpenShift的安装一般会通过高级安装完成,即通过Ansible完成。关于安装的更多信息可以参考OpenShift Origin的安装文档。
OpenShift Origin的安装文档:https://docs.openshift.org/latest/install_conf?ig/index.html。

2.1.1 准备主机

为了运行OpenShift Origin,需要一台运行Linux操作系统的主机,可以是物理机或是虚拟机。为了试验方便,推荐使用虚拟机。KVM、VMWare或VirtualBox的虚拟机均可。表2-1是推荐的最低配置。
image

2.1.2 准备操作系统

请至CentOS Linux主页下载CentOS Linux 7.2的ISO镜像。如果镜像下载的网速太慢,也可从中国科技大学提供的开源镜像站点下载。
CentOS主页:https://www.centos.org/download/。
中国科技大学镜像站点
按提示为主机安装CentOS操作系统。安装时选择最小安装模式(Minimal模式)。

2.1.3 操作系统配置

操作系统安装完毕后,以root用户登录系统。请确认主机已经获取了IP地址。本例中,笔者使用的主机的IP地址为192.168.172.167。

[root@master ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP>mtu 65536 qdiscnoqueue state UNKNOWN 
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host 
valid_lft forever preferred_lft forever
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP>mtu 1500 qdiscpfifo_fast state UP qlen 1000
    link/ether 00:0c:29:df:3e:cb brdff:ff:ff:ff:ff:ff
inet 192.168.172.167/24 brd 192.168.172.255 scope global dynamic eno16777736
valid_lft 1286sec preferred_lft 1286sec
    inet6 fe80::20c:29ff:fedf:3ecb/64 scope link

OpenShift集群的正常运行需要一个可被解析的主机名。本例配置的主机名为master.example.com。

[root@master ~]# hostnamectl set-hostname master.example.com

确认主机名是否能被正常解析。如不能解析,请修改/etc/hosts文件添加主机名的解析,将主机名指向实验主机的IP地址。

2.1.4 安装Docker

OpenShift平台使用的容器引擎为Docker,因此需要安装Docker软件包。

[root@master ~]# yum install -y docker

安装完毕后启动Docker服务,并配置为开机自启动。

[root@master ~]# systemctl start docker
[root@master ~]# systemctl enable docker

由于国内访问DockerHub下载镜像的速度过于缓慢,可以使用中国科技大学的Docker-Hub镜像服务器进行加速。编辑/etc/sysconfig/docker文件,为DOCKER_OPTS变量追加参数--registry-mirror=https://docker.mirrors.ustc.edu.cn。修改后变量值大致如下:

OPTIONS='--selinux-enabled --log-driver=journald --registry-mirror=https://docker.mirrors.ustc.edu.cn'

修改完Docker配置文件后,重启Docker进程使修改的配置生效。

[root@master ~]# systemctl restart docker

此时可以尝试运行一个DockerHub上的镜像,测试Docker是否正常工作。在下面的例子里,笔者运行了一个名为hello-openshift的镜像。这个镜像中运行了一个用go语言编写的小程序。如果一切正常,容器将成功启动,并监听8080及8888端口。

[root@master ~]# docker run -it openshift/hello-openshift
Unable to find image 'openshift/hello-openshift:latest' locally
Trying to pull repository docker.io/openshift/hello-openshift ...
latest: Pulling from docker.io/openshift/hello-openshift
a3ed95caeb02: Pull complete 
a8a87b6280f5: Pull complete 
Digest: sha256:fe89d47f566947617019a15eef50d97c8c20d6c9a5aba0d3cb45f84d2085e4e3
Status: Downloaded newer image for docker.io/openshift/hello-openshift:latest
serving on 8888
serving on 8080

测试完毕后,按Ctrl+c组合键停止运行中的容器。如果Docker无法找到容器镜像或者出现了其他错误,则检查前序执行的安装配置步骤。

2.1.5 下载OpenShift Origin安装包

从OpenShift Origin的GitHub仓库中下载OpenShift Origin的二进制执行文件。本书示例所用的OpenShift Origin版本为1.3.0,文件为
openshift-origin-server-v1.3.0-3ab7af3d097b57f933eccef684a714f2368804e7-linux-64bit.tar.gz
将下载好的OpenShift二进制包拷贝到主机的/opt目录下。
本例中使用的OpenShift Origin二进制执行文件包的下载地址如下:https://github.com/

openshift/origin/releases/download/v1.3.0/openshift-origin-server-v1.3.0-3ab7af3d097b57f933eccef684a714f2368804e7-linux-64bit.tar.gz。

2.1.6 安装及启动OpenShift Origin

进入/opt目录,解压下载好的OpenShift Origin二进制安装包。

[root@master /]# cd /opt/
[root@master opt]# tar zxvf openshift-origin-server-v1.3.0-3ab7af3d097b57f933eccef684a714f2368804e7-linux-64bit.tar.gz 
[root@master opt]# ln -s openshift-origin-server-v1.3.0-3ab7af3d097b57f933eccef684a714f2368804e7-linux-64bit /opt/openshift

将OpenShift的相关命令追加至系统的PATH环境变量中。编辑/etc/prof?ile文件,添加如下文本内容至文件末尾。
PATH=$PATH:/opt/openshift/
执行source命令使修改的配置生效。
[root@master opt]# source /etc/profile
修改完毕后,可以测试Shell能否找到openshift命令。执行openshift version命令查看当前OpenShf?it的版本。通过下面的输出可以看到当前使用的OpenShift版本是1.3.0,搭配的Kubernetes的版本为1.3.0,etcd为2.3.0。

[root@masteropenshift]# openshift version
openshift v1.3.0
kubernetes v1.3.0+52492b4
etcd 2.3.0+git
进入/opt/openshift目录。执行openshift start命令启动OpenShift Origin。
[root@master opt]# cd /opt/openshift
[root@masteropenshift]# openshift start

命令执行后控制台将有日志输出,当日志输出停止后即表示OpenShift服务启动完毕。

2.1.7 登录OpenShift Origin控制台

OpenShift Origin启动完毕后,在浏览器中访问网址https://master.example.com:8443,即可看见OpenShift的Web控制台,如图2-1所示。

image

如浏览器提示证书不可信,请忽略此告警并继续。推荐使用FireFox及Chrome浏览器访问Web控制台。
请使用系统用户dev登录,用户密码为dev。成功登录后将可以看到OpenShift的欢迎页面,如图2-2所示。
恭喜您!您已经成功踏入了容器云的世界!

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。 &nbsp; &nbsp; 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
8月前
|
Kubernetes Devops 应用服务中间件
基于 Azure DevOps 与阿里云 ACK 构建企业级 CI/CD 流水线
本文介绍如何结合阿里云 ACK 与 Azure DevOps 搭建自动化部署流程,涵盖集群创建、流水线配置、应用部署与公网暴露,助力企业高效落地云原生 DevOps 实践。
945 2
|
8月前
|
存储 Kubernetes 网络安全
关于阿里云 Kubernetes 容器服务(ACK)添加镜像仓库的快速说明
本文介绍了在中国大陆地区因网络限制无法正常拉取 Docker 镜像的解决方案。作者所在的阿里云 Kubernetes 集群使用的是较旧版本的 containerd(1.2x),且无法直接通过 SSH 修改节点配置,因此采用了一种无需更改 Kubernetes 配置文件的方法。通过为 `docker.io` 添加 containerd 的镜像源,并使用脚本自动修改 containerd 配置文件中的路径错误(将错误的 `cert.d` 改为 `certs.d`),最终实现了通过多个镜像站点拉取镜像。作者还提供了一个可重复运行的脚本,用于动态配置镜像源。虽然该方案能缓解镜像拉取问题,
856 3
|
人工智能 弹性计算 运维
ACK Edge与IDC:高效容器网络通信新突破
本文介绍如何基于ACK Edge以及高效的容器网络插件管理IDC进行容器化。
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
针对本地存储和 PVC 这两种容器存储使用方式,我们对 ACK 的容器存储监控功能进行了全新升级。此次更新完善了对集群中不同存储类型的监控能力,不仅对之前已有的监控大盘进行了优化,还针对不同的云存储类型,上线了全新的监控大盘,确保用户能够更好地理解和管理容器业务应用的存储资源。
775 275
|
监控 NoSQL 时序数据库
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
《docker高级篇(大厂进阶):7.Docker容器监控之CAdvisor+InfluxDB+Granfana》包括:原生命令、是什么、compose容器编排,一套带走
742 78
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
存储 运维 Kubernetes
正式开源,Doris Operator 支持高效 Kubernetes 容器化部署方案
飞轮科技推出了 Doris 的 Kubernetes Operator 开源项目(简称:Doris Operator),并捐赠给 Apache 基金会。该工具集成了原生 Kubernetes 资源的复杂管理能力,并融合了 Doris 组件间的分布式协同、用户集群形态的按需定制等经验,为用户提供了一个更简洁、高效、易用的容器化部署方案。
945 16
正式开源,Doris Operator 支持高效 Kubernetes 容器化部署方案
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
427 0
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
328 1
|
弹性计算 人工智能 资源调度
DeepSeek大解读系列公开课上新!阿里云专家主讲云上智能算力、Kubernetes容器服务、DeepSeek私有化部署
智猩猩「DeepSeek大解读」系列公开课第三期即将开讲,聚焦阿里云弹性计算助力大模型训练与部署。三位专家将分别讲解智能算力支撑、Kubernetes容器服务在AI场景的应用实践、以及DeepSeek一键部署和多渠道应用集成,分享云计算如何赋能大模型发展。欲观看直播,可关注【智猩猩GenAI视频号】预约。 (239字符)

相关产品

  • 容器服务Kubernetes版
  • 推荐镜像

    更多