linux安装okd_在Linux桌面上使用OKD入门
linux安装okd OKD是Red Hat OpenShift容器平台的开源上游社区版本。 OKD是一个基于Docker和Kubernetes的容器管理和编排平台。OKD是管理,部署和操作容器化应用程序的完整解决方案,除了Kubernetes提供的功能外,它还包括易于使用的Web界面,自动构建工具,路由功能以及监视和日志记录聚合功能。OKD提供了多个针对不同需求的部署选项,这些部署...
linux安装okd
OKD是Red Hat OpenShift容器平台的开源上游社区版本。 OKD是一个基于Docker和Kubernetes的容器管理和编排平台。
OKD是管理,部署和操作容器化应用程序的完整解决方案,除了Kubernetes提供的功能外,它还包括易于使用的Web界面,自动构建工具,路由功能以及监视和日志记录聚合功能。
OKD提供了多个针对不同需求的部署选项,这些部署选项具有单个或多个主节点,高可用性功能,日志记录,监视等。 您可以创建所需大小的OKD群集。
oc命令行工具。 如果您想在本地尝试OKD而不花资源来创建更大的多节点集群,或者如果您希望在计算机上拥有本地集群作为工作流或开发过程的一部分,那么这是一个很好的选择。 在这种情况下,您可以使用大规模部署应用程序所需的相同API和接口在本地创建和部署应用程序。 此过程可确保无缝集成,从而防止在开发人员环境中但在生产环境中无法正常工作的应用程序出现问题。本教程将向您展示如何在Linux系统中使用oc集群创建OKD集群。
1.安装Docker
oc cluster up命令使用Docker容器在您的计算机上创建本地OKD集群。 为了使用此命令,您需要在计算机上安装Docker。 对于3.9和更高版本的OKD,建议的最低版本是Docker 1.13。 如果您的系统上未安装Docker,请使用分发软件包管理器进行安装。 例如,在CentOS或RHEL上,使用以下命令安装Docker:
$ sudo yum install -y docker
在Fedora上,使用dnf:
$ sudo dnf install -y docker
这将安装Docker和所有必需的依赖项。
2.配置Docker不安全注册表
安装Docker之后,您需要对其进行配置,以允许与地址为172.30.0.0/16的不安全注册表进行通信。 此不安全的注册表将在以后与本地OKD群集一起部署。
在CentOS或RHEL上,通过添加以下行来编辑文件/etc/docker/daemon.json :
{
"insecure-registries" :
[
"172.30.0.0/16"
]
}
在Fedora上,通过添加以下行来编辑文件/etc/containers/registries.conf :
[registries.insecure]
registries = ['172.30.0.0/16']
3.启动Docker
在启动Docker之前,创建一个名为docker的系统组并将该组分配给您的用户,以便您可以与自己的用户一起运行Docker命令,而无需root或sudo访问。 这使您可以使用自己的用户来创建OKD群集。
例如,以下是用于创建组并将其分配给我的本地用户ricardo的命令 :
$
sudo groupadd docker
$
sudo usermod
-a
-G docker ricardo
您需要注销并重新登录才能查看新的组关联。 重新登录后,运行id命令并确保您是docker组的成员:
$
id
uid =
1000
( ricardo
)
gid =
1000
( ricardo
)
groups =
1000
( ricardo
) ,
10
( wheel
) ,
1001
( docker
)
context =unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
现在,启动并启用Docker守护程序,如下所示:
$
sudo systemctl start docker
$
sudo systemctl
enable docker
Created symlink from
/ etc
/ systemd
/ system
/ multi-user.target.wants
/ docker.service to
/ usr
/ lib
/ systemd
/ system
/ docker.service.
验证Docker是否正在运行:
$ docker version
Client:
Version: 1.13.1
API version:
1.26
Package version: docker-1.13.1-
75 .git8633870.el7.centos.x86_64
Go version: go1.9.4
Git commit:
8633870
/ 1.13.1
Built: Fri Sep
28
19 :
45 :08
2018
OS
/ Arch: linux
/ amd64
Server:
Version: 1.13.1
API version:
1.26
( minimum version
1.12
)
Package version: docker-1.13.1-
75 .git8633870.el7.centos.x86_64
Go version: go1.9.4
Git commit:
8633870
/ 1.13.1
Built: Fri Sep
28
19 :
45 :08
2018
OS
/ Arch: linux
/ amd64
Experimental:
false
通过运行docker info并查找以下行,确保已启用不安全的注册表选项:
$ docker info
... Skipping long output ...
Insecure Registries:
172.30.0.0
/
16
127.0.0.0
/
8
4.打开防火墙端口
接下来,打开防火墙端口,以确保您的OKD容器可以与主API通信。 默认情况下,某些发行版启用了防火墙,该防火墙阻止了从OKD容器到主API的必需连接。 如果您的系统启用了防火墙,则需要添加规则以允许在Docker桥子网上的8384 / tcp端口上进行主API通信,并在53 / udp端口上进行DNS解析通信。
对于CentOS,RHEL和Fedora,您可以使用firewall-cmd命令行工具添加规则。 对于其他发行版,可以使用提供的防火墙管理器,例如UFW或iptables 。
在添加防火墙规则之前,获取Docker桥网络子网的地址,如下所示:
$ docker network inspect bridge
|
grep Subnet
"Subnet" :
"172.17.0.0/16" ,
使用此子网启用防火墙规则。 对于CentOS,RHEL和Fedora,使用firewall-cmd添加一个新区域:
$
sudo firewall-cmd
--permanent
--new-zone okdlocal
success
包括您之前获得的子网地址,作为新区域的来源:
$
sudo firewall-cmd
--permanent
--zone okdlocal
--add-source 172.17.0.0
/
16
success
接下来,将所需的规则添加到okdlocal区域:
$
sudo firewall-cmd
--permanent
--zone okdlocal
--add-port
8443
/ tcp
success
$
sudo firewall-cmd
--permanent
--zone okdlocal
--add-port
53
/ udp
success
$
sudo firewall-cmd
--permanent
--zone okdlocal
--add-port
8053
/ udp
success
最后,重新加载防火墙以启用新规则:
$
sudo firewall-cmd
--reload
success
确保新区域和规则到位:
$
sudo firewall-cmd
--zone okdlocal
--list-sources
172.17.0.0
/
16
$
sudo firewall-cmd
--zone okdlocal
--list-ports
8443
/ tcp
53
/ udp
8053
/ udp
您的系统已准备好启动集群。 现在该下载OKD客户端工具了。
5.下载OKD客户端工具
要使用oc部署本地OKD集群,您需要下载OKD客户端工具包。 对于某些发行版,例如CentOS和Fedora,可以从官方存储库中以RPM的形式下载此软件包。 请注意,这些软件包可能会遵循发行版更新周期,通常不是可用的最新版本。
对于本教程,请直接从官方GitHub存储库下载OKD客户端软件包,以便获得可用的最新版本。 在撰写本文时,这是OKD v3.11。
转到OKD下载页面以获取指向Linux的OKD工具的链接,然后使用wget下载它:
$
cd ~
/ Downloads
/
$
wget https:
// github.com
/ openshift
/ origin
/ releases
/ download
/ v3.11.0
/ openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz
解压缩下载的软件包:
$ tar -xzvf openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz
最后,为了使在整个系统范围内使用oc命令更加容易,请将其移动到$ PATH变量中包含的目录中。 好的位置是/ usr / local / bin :
$ sudo cp openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit / oc / usr / local / bin /
oc命令最好的功能之一是它是静态的单个二进制文件。 您无需安装即可使用。
检查oc命令是否正常工作:
$ oc version
oc v3.11.0+0cbc58b
kubernetes v1.11.0+d4cacc0
features: Basic-Auth GSSAPI Kerberos SPNEGO
6.启动您的OKD集群
满足所有先决条件后,通过运行以下命令来启动本地OKD集群:
$ oc cluster up
该命令连接到本地Docker守护程序,从Docker Hub下载所有必需的映像,然后启动容器。 首次运行时,需要几分钟才能完成。 完成后,您将看到以下消息:
... Skipping long output ...
OpenShift server started.
The server is accessible via web console at:
https://127.0.0.1:8443
You are logged in as:
User: developer
Password: <any value>
To login as administrator:
oc login -u system:admin
通过使用浏览器并导航到https://127.0.0.1:8443,访问OKD Web控制台:
在命令行中,您可以通过输入以下命令来检查集群是否正在运行:
$ oc cluster status
Web console URL: https:
// 127.0.0.1:
8443
/ console
/
Config is at host directory
Volumes are at host directory
Persistent volumes are at host directory
/ home
/ ricardo
/ openshift.local.clusterup
/ openshift.local.pv
Data will be discarded when cluster is destroyed
您还可以通过以system:admin用户身份登录并使用oc命令行工具检查可用节点来验证集群是否正常工作:
$ oc
login
-u system:admin
Logged into
"https://127.0.0.1:8443"
as
"system:admin" using existing credentials.
You have access to the following projects and can switch between them with
'oc project <projectname>' :
default
kube-dns
kube-proxy
kube-public
kube-system
* myproject
openshift
openshift-apiserver
openshift-controller-manager
openshift-core-operators
openshift-infra
openshift-node
openshift-service-cert-signer
openshift-web-console
Using project
"myproject" .
$ oc get nodes
NAME STATUS ROLES AGE VERSION
localhost Ready
< none
> 52m v1.11.0+d4cacc0
由于这是一个本地的多合一集群,因此在节点列表中只能看到localhost 。
7.对您的集群进行烟雾测试
现在您的本地OKD集群正在运行,创建一个测试应用程序以对其进行烟雾测试。 使用OKD生成并启动示例应用程序,以便您可以确保不同的组件正常工作。
首先以开发者用户身份登录:
$ oc
login
-u developer
Logged into
"https://127.0.0.1:8443"
as
"developer" using existing credentials.
You have one project on this server:
"myproject"
Using project
"myproject" .
系统会自动将您分配到一个名为myproject的空项目。 基于现有的GitHub存储库创建示例PHP应用程序,如下所示:
$ oc new-app php:
5.6 ~https:
// github.com
/ rgerardi
/ ocp-smoke-test.git
--
> Found image 92ed8b3
(
5 months old
)
in image stream
"openshift/php" under tag
"5.6"
for
"php:5.6"
Apache
2.4 with PHP
5.6
-----------------------
PHP
5.6 available
as container is a base platform
for building and running various PHP
5.6 applications and frameworks. PHP is an HTML-embedded scripting language. PHP attempts to
make it easy
for developers to
write dynamically generated web pages. PHP also offers built-in database integration
for several commercial and non-commercial database management systems, so writing a database-enabled webpage with PHP is fairly simple. The most common use of PHP coding is probably
as a replacement
for CGI scripts.
Tags: builder, php, php56, rh-php56
* A
source build using
source code from https:
// github.com
/ rgerardi
/ ocp-smoke-test.git will be created
* The resulting image will be pushed to image stream tag
"ocp-smoke-test:latest"
* Use
'start-build' to trigger a new build
* This image will be deployed
in deployment config
"ocp-smoke-test"
* Ports
8080
/ tcp,
8443
/ tcp will be load balanced by service
"ocp-smoke-test"
* Other containers can access this service through the
hostname
"ocp-smoke-test"
--
> Creating resources ...
imagestream.image.openshift.io
"ocp-smoke-test" created
buildconfig.build.openshift.io
"ocp-smoke-test" created
deploymentconfig.apps.openshift.io
"ocp-smoke-test" created
service
"ocp-smoke-test" created
--
> Success
Build scheduled, use
'oc logs -f bc/ocp-smoke-test' to track its progress.
Application is not exposed. You can expose services to the outside world by executing one or
more of the commands below:
'oc expose svc/ocp-smoke-test'
Run
'oc status' to view your app.
OKD开始构建过程,该过程将克隆提供的GitHub存储库,编译应用程序(如果需要),并创建必要的映像。 您可以通过以下命令跟踪日志,以遵循构建过程:
$ oc logs
-f bc
/ ocp-smoke-test
Cloning
"https://github.com/rgerardi/ocp-smoke-test.git" ...
Commit: 391a475713d01ab0afab700bab8a3d7549c5cc27
( Create index.php
)
Author: Ricardo Gerardi
< ricardo.gerardi
@ gmail.com
>
Date: Tue Oct
2
13 :
47 :
25
2018
-0400
Using 172.30.1.1:
5000
/ openshift
/ php
@ sha256:f3c95020fa870fcefa7d1440d07a2b947834b87bdaf000588e84ef4a599c7546
as the s2i builder image
---
> Installing application source...
=
> sourcing
20 -copy-config.sh ...
---
> 04:
53 :
28 Processing additional arbitrary httpd configuration provided by s2i ...
=
> sourcing 00-documentroot.conf ...
=
> sourcing
50 -mpm-tuning.conf ...
=
> sourcing
40 -ssl-certs.sh ...
Pushing image 172.30.1.1:
5000
/ myproject
/ ocp-smoke-test:latest ...
Pushed
1
/
10 layers,
10
%
complete
Push successful
构建过程完成后,OKD通过基于创建的映像运行新的pod来自动启动应用程序。 您可以使用以下命令查看此新容器:
$ oc get pods
NAME READY STATUS RESTARTS AGE
ocp-smoke-test-
1 -build
0
/
1 Completed
0 1m
ocp-smoke-test-
1 -d8h76
1
/
1 Running
0 7s
您可以看到创建了两个吊舱; 第一个(状态为“已完成”)是用于构建应用程序的pod。 第二个(状态为“正在运行”)是应用程序本身。
此外,OKD会为此应用程序创建服务。 使用以下命令验证它:
$ oc get service
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT
( S
) AGE
ocp-smoke-test ClusterIP 172.30.232.241
< none
>
8080
/ TCP,
8443
/ TCP 1m
最后,使用OKD路由在外部公开此服务,以便您可以从本地浏览器访问该应用程序:
$ oc expose svc ocp-smoke-test
route.route.openshift.io
/ ocp-smoke-test exposed
$ oc get route
NAME HOST
/ PORT PATH SERVICES PORT TERMINATION WILDCARD
ocp-smoke-test ocp-smoke-test-myproject.127.0.0.1.nip.io ocp-smoke-test
8080 -tcp None
通过在Web浏览器中导航到http://ocp-smoke-test-myproject.127.0.0.1.nip.io来验证新应用程序是否正在运行:
您还可以通过登录OKD Web控制台来查看应用程序的状态:
学到更多
您可以在官方网站上找到有关OKD的更多信息,其中包括指向OKD 文档的链接。
如果这是您第一次使用OKD / OpenShift,则可以通过Interactive Learning Portal学习平台的基础知识,包括如何构建和部署容器化应用程序。 另一个不错的资源是OpenShift YouTube官方频道 。
翻译自: https://opensource.com/article/18/11/local-okd-cluster-linux
linux安装okd
更多推荐
所有评论(0)