《开源容器云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

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所示。
恭喜您!您已经成功踏入了容器云的世界!

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
3月前
|
运维 Kubernetes Docker
利用Docker和Kubernetes构建微服务架构
利用Docker和Kubernetes构建微服务架构
|
4月前
|
Kubernetes 负载均衡 Docker
构建高效微服务架构:Docker与Kubernetes的完美搭档
本文介绍了Docker和Kubernetes在构建高效微服务架构中的应用,涵盖基本概念、在微服务架构中的作用及其实现方法。通过具体实例,如用户服务、商品服务和订单服务,展示了如何利用Docker和Kubernetes实现服务的打包、部署、扩展及管理,确保微服务架构的稳定性和可靠性。
148 7
|
3月前
|
Kubernetes 负载均衡 Docker
构建高效微服务架构:Docker与Kubernetes的完美搭档
【10月更文挑战第22天】随着云计算和容器技术的快速发展,微服务架构逐渐成为现代企业级应用的首选架构。微服务架构将一个大型应用程序拆分为多个小型、独立的服务,每个服务负责完成一个特定的功能。这种架构具有灵活性、可扩展性和易于维护的特点。在构建微服务架构时,Docker和Kubernetes是两个不可或缺的工具,它们可以完美搭档,为微服务架构提供高效的支持。本文将从三个方面探讨Docker和Kubernetes在构建高效微服务架构中的应用:一是Docker和Kubernetes的基本概念;二是它们在微服务架构中的作用;三是通过实例讲解如何使用Docker和Kubernetes构建微服务架构。
83 6
|
9月前
|
Kubernetes 开发者 Docker
构建高效微服务架构:Docker与Kubernetes的协同应用
【5月更文挑战第30天】 在当今软件开发领域,微服务架构已成为实现系统模块化、提升可维护性及扩展性的关键策略。本文深入探讨了如何通过Docker容器化技术和Kubernetes集群管理,共同构建一个既高效又可靠的后端微服务环境。我们将剖析Docker和Kubernetes的核心功能,以及它们如何相辅相成,支撑起现代化的云原生应用程序部署和管理。文章还将提供具体实践案例,帮助开发者理解将理论应用于实际开发过程中的步骤和考虑因素。
|
9月前
|
Kubernetes Cloud Native 开发者
构建高效的云原生应用:Docker与Kubernetes的完美搭档
【5月更文挑战第29天】 在现代软件开发领域,"云原生"这一术语已经成为高效、可扩展和弹性的代名词。本文将深入探讨如何通过Docker容器化技术和Kubernetes集群管理工具实现云原生应用的构建和管理。我们将剖析Docker的核心原理,揭示其轻量级和易于部署的特点,并进一步探索Kubernetes如何为这些容器提供编排,保证应用的高可用性与自动扩缩容。文章不仅讨论了二者的技术细节,还提供了实践案例,帮助开发者理解并运用这些技术构建和维护自己的云原生应用。
|
5月前
|
Kubernetes Docker 微服务
构建高效的微服务架构:基于Docker和Kubernetes的最佳实践
在现代软件开发中,微服务架构因其灵活性和可扩展性而受到广泛青睐。本文探讨了如何利用Docker和Kubernetes来构建高效的微服务架构。我们将深入分析Docker容器的优势、Kubernetes的编排能力,以及它们如何结合实现高可用性、自动扩展和持续部署。通过具体的最佳实践和实际案例,读者将能够理解如何优化微服务的管理和部署过程,从而提高开发效率和系统稳定性。
|
5月前
|
Kubernetes 负载均衡 应用服务中间件
kubeadm快速构建K8S1.28.1高可用集群
关于如何使用kubeadm快速构建Kubernetes 1.28.1高可用集群的详细教程。
207 2
|
6月前
|
存储 Kubernetes 调度
通过重新构建Kubernetes来实现更具弹性的容器编排系统
通过重新构建Kubernetes来实现更具弹性的容器编排系统
76 8
|
6月前
|
Kubernetes Cloud Native 应用服务中间件
云原生之旅:构建你的首个Kubernetes集群
【8月更文挑战第31天】在这个数字化迅速演进的时代,云原生技术如同星辰般璀璨。它不仅是企业数字化转型的引擎,更是开发者们探索创新的乐园。本文将带你开启一场云原生的奇妙旅程,从零开始,一步步构建属于你自己的Kubernetes集群。想象一下,当你的应用在云端自如地伸缩、滚动更新时,那份成就感和掌控感,是不是已经让你跃跃欲试了呢?那就让我们开始吧!
|
6月前
|
敏捷开发 Kubernetes 测试技术
阿里云云效产品使用合集之如何在K8s集群上进行构建
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。

相关产品

  • 容器服务Kubernetes版