linux安装okd

OKD是Red Hat OpenShift容器平台的开源上游社区版本。 OKD是一个基于DockerKubernetes的容器管理和编排平台。

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命令行工具添加规则。 对于其他发行版,可以使用提供的防火墙管理器,例如UFWiptables

在添加防火墙规则之前,获取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控制台

OKD Web Console

在命令行中,您可以通过输入以下命令来检查集群是否正在运行:


   
   
$ 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 sample web application

您还可以通过登录OKD Web控制台来查看应用程序的状态:

OKD sample application status

学到更多

您可以在官方网站上找到有关OKD的更多信息,其中包括指向OKD 文档的链接。

如果这是您第一次使用OKD / OpenShift,则可以通过Interactive Learning Portal学习平台的基础知识,包括如何构建和部署容器化应用程序。 另一个不错的资源是OpenShift YouTube官方频道

翻译自: https://opensource.com/article/18/11/local-okd-cluster-linux

linux安装okd

Logo

更多推荐