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

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介:

本节书摘来自华章出版社《开源容器云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
AI 代码解读

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

[root@master ~]# hostnamectl set-hostname master.example.com
AI 代码解读

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

2.1.4 安装Docker

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

[root@master ~]# yum install -y docker
AI 代码解读

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

[root@master ~]# systemctl start docker
[root@master ~]# systemctl enable docker
AI 代码解读

由于国内访问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'
AI 代码解读

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

[root@master ~]# systemctl restart docker
AI 代码解读

此时可以尝试运行一个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
AI 代码解读

测试完毕后,按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
AI 代码解读

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
AI 代码解读

将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
AI 代码解读

命令执行后控制台将有日志输出,当日志输出停止后即表示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所示。
恭喜您!您已经成功踏入了容器云的世界!

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
目录
打赏
0
0
0
0
1408
分享
相关文章
正式开源,Doris Operator 支持高效 Kubernetes 容器化部署方案
飞轮科技推出了 Doris 的 Kubernetes Operator 开源项目(简称:Doris Operator),并捐赠给 Apache 基金会。该工具集成了原生 Kubernetes 资源的复杂管理能力,并融合了 Doris 组件间的分布式协同、用户集群形态的按需定制等经验,为用户提供了一个更简洁、高效、易用的容器化部署方案。
正式开源,Doris Operator 支持高效 Kubernetes 容器化部署方案
KubeSphere 是一个开源的容器平台,提供丰富的功能和便捷的操作界面,适用于企业容器化部署和管理
KubeSphere 是一个开源的容器平台,提供丰富的功能和便捷的操作界面,适用于企业容器化部署和管理。本文详细介绍了如何在 Ubuntu 22.04 上安装 KubeSphere,包括系统要求、安装依赖项、设置防火墙、下载安装脚本、选择安装选项、验证安装结果等步骤,并提供了常见问题的解决方法。希望本文能为读者提供实用的参考和帮助。
114 3
关于K8s,不错的开源工具
【10月更文挑战第12天】
140 7
|
7月前
|
CentOS7部署阿里巴巴开源的pouch容器管理工具实战
关于如何在CentOS 7.6操作系统上安装和使用阿里巴巴开源的Pouch容器管理工具的实战教程。
182 2
Kubernetes(通常简称为K8s)是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用程序。
Kubernetes(通常简称为K8s)是一个开源的容器编排系统,用于自动化部署、扩展和管理容器化应用程序。
【PolarDB开源】PolarDB与Kubernetes集成:容器化部署的最佳实践
【5月更文挑战第21天】本文介绍了将阿里云的高性能数据库PolarDB与容器编排工具Kubernetes集成的步骤。首先,需准备Kubernetes集群和PolarDB Docker镜像,安装Helm。然后,通过Helm部署PolarDB,设置存储类和副本数。接着,应用配置PolarDB连接信息,打包成Docker镜像并在K8s集群中部署。此外,调整PolarDB参数以优化性能,并使用Prometheus和Grafana监控。本文为PolarDB在Kubernetes中的最佳实践提供了指导。
307 4
Kubernetes CNI 网络模型及常见开源组件
【4月更文挑战第13天】目前主流的容器网络模型是CoreOS 公司推出的 Container Network Interface(CNI)模型
K8S故障注入混沌工程开源平台ChaosMesh
总之,ChaosMesh作为一个Kubernetes混沌工程平台,为用户提供了测试和验证Kubernetes集群的可靠性的工具和框架,有助于提高系统的稳定性和性能。
331 0

相关产品

  • 容器服务Kubernetes版