快速安装OpenShift在Ubuntu系统上并使用
创始人
2024-05-18 18:36:39
0

目录

OpenShift简介:

服务器信息

安装Docker

安装OpenShift

访问Dashboard

oc常用命令


OpenShift简介:

OpenShift 是一个开源容器应用平台,由 Red Hat 开发。它建立在 Kubernetes 之上,并提供用于部署、扩展和管理容器化应用程序的附加功能和工具。它允许开发人员使用各种语言轻松创建、测试和部署应用程序,包括 Java、Ruby、PHP、Python 等。它还提供用于管理和监控应用程序的 Web 控制台和命令行界面,以及对持续集成和交付的集成支持。OpenShift 旨在在本地、公共云和混合云环境中运行,使其成为适合各种规模组织的多功能平台。

OpenShift 提供了几个关键特性,使其成为容器化应用程序开发和部署的强大平台。一些主要功能包括:

  • 多语言支持:OpenShift 支持多种编程语言,包括 Java、Ruby、PHP、Python、Node.js 等。这使得开发人员可以使用他们最熟悉的语言和框架,而不是被锁定在特定的语言或框架中。

  • 内置容器编排:OpenShift 建立在 Kubernetes 之上,为容器化应用提供强大的编排和管理能力。这使开发人员能够轻松部署、扩展和管理他们的应用程序,而无需手动管理各个容器。

  • Web 控制台和命令行界面:OpenShift 提供了一个 Web 控制台和命令行界面,用于管理和监控应用程序。这使开发人员可以轻松查看其应用程序的状态、解决问题并执行其他管理任务。

  • 集成持续集成和交付:OpenShift 为持续集成和交付提供集成支持。这允许开发人员在每次代码更改时自动构建、测试和部署他们的应用程序,这有助于提高他们开发过程的速度和质量。

  • 自助供应:OpenShift 允许开发人员轻松供应新项目、服务和资源。他们可以轻松创建新的应用程序和服务,无需通过集中的 IT 部门。

  • 安全性和合规性:OpenShift 提供多种安全功能,包括基于角色的访问控制、网络分段和集成机密管理。这些功能有助于确保应用程序和数据的安全并遵守行业法规。

总的来说,OpenShift 是一个强大而灵活的平台,可以帮助组织提高其应用程序开发和部署过程的速度和质量。

服务器信息

在阿里云买了个抢占式的服务器,地区为华南广州,系统为Ubuntu 20.04,8核16GB。

 

安装Docker

命令如下:

$ apt-get update -y
$ apt-get upgrade -y
$ apt-get install -y docker.io

安装成功后,检查一下版本:

$ docker version
Client:Version:           20.10.7API version:       1.41Go version:        go1.13.8Git commit:        20.10.7-0ubuntu5~20.04.2Built:             Mon Nov  1 00:34:17 2021OS/Arch:           linux/amd64Context:           defaultExperimental:      trueServer:Engine:Version:          20.10.7API version:      1.41 (minimum version 1.12)Go version:       go1.13.8Git commit:       20.10.7-0ubuntu5~20.04.2Built:            Fri Oct 22 00:45:53 2021OS/Arch:          linux/amd64Experimental:     falsecontainerd:Version:          1.5.5-0ubuntu3~20.04.1GitCommit:        runc:Version:          1.0.1-0ubuntu2~20.04.1GitCommit:        docker-init:Version:          0.19.0GitCommit:        

要修改Docker配置文件,让它可以使用私有的registry:

cat << EOF | sudo tee /etc/docker/daemon.json {"insecure-registries" : [ "172.30.0.0/16" ]}
EOF

然后重启一下Docker即可:

systemctl restart docker

安装OpenShift

下载并解压对应的可执行文件:

# 下载
$ wget https://github.com/openshift/origin/releases/download/v3.11.0/openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz# 解压
$ tar xvf openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit.tar.gz # 复制到bin目录
$ cp openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit/oc /usr/local/bin/
$ cp openshift-origin-client-tools-v3.11.0-0cbc58b-linux-64bit/kubectl /usr/local/bin/# 检查版本
$ oc version
oc v3.11.0+0cbc58b
kubernetes v1.11.0+d4cacc0
features: Basic-Auth GSSAPI Kerberos SPNEGO

启动集群,第一次需要比较长的时候,因为需要下载镜像:

$ oc cluster up
Getting a Docker client ...
Checking if image openshift/origin-control-plane:v3.11 is available ...
Creating shared mount directory on the remote host ...
Determining server IP ...
Checking if OpenShift is already running ...
Checking for supported Docker version (=>1.22) ...
Checking if insecured registry is configured properly in Docker ...
Checking if required ports are available ...
Checking if OpenShift client is configured properly ...
Checking if image openshift/origin-control-plane:v3.11 is available ...
Starting OpenShift using openshift/origin-control-plane:v3.11 ...
I0301 22:24:39.111730   51771 flags.go:30] Running "create-kubelet-flags"
I0301 22:24:39.541760   51771 run_kubelet.go:49] Running "start-kubelet"
I0301 22:24:39.624336   51771 run_self_hosted.go:181] Waiting for the kube-apiserver to be ready ...
I0301 22:25:30.631581   51771 interface.go:26] Installing "kube-proxy" ...
I0301 22:25:30.631597   51771 interface.go:26] Installing "kube-dns" ...
I0301 22:25:30.631604   51771 interface.go:26] Installing "openshift-service-cert-signer-operator" ...
I0301 22:25:30.631609   51771 interface.go:26] Installing "openshift-apiserver" ...
I0301 22:25:30.631624   51771 apply_template.go:81] Installing "openshift-apiserver"
I0301 22:25:30.631673   51771 apply_template.go:81] Installing "kube-dns"
I0301 22:25:30.631682   51771 apply_template.go:81] Installing "openshift-service-cert-signer-operator"
I0301 22:25:30.631689   51771 apply_template.go:81] Installing "kube-proxy"
I0301 22:25:31.680155   51771 interface.go:41] Finished installing "kube-proxy" "kube-dns" "openshift-service-cert-signer-operator" "openshift-apiserver"
I0301 22:29:04.695159   51771 run_self_hosted.go:242] openshift-apiserver available
I0301 22:29:04.695183   51771 interface.go:26] Installing "openshift-controller-manager" ...
I0301 22:29:04.695201   51771 apply_template.go:81] Installing "openshift-controller-manager"
I0301 22:29:05.924403   51771 interface.go:41] Finished installing "openshift-controller-manager"
Adding default OAuthClient redirect URIs ...
Adding registry ...
Adding router ...
Adding centos-imagestreams ...
Adding sample-templates ...
Adding persistent-volumes ...
Adding web-console ...
I0301 22:29:05.934015   51771 interface.go:26] Installing "openshift-image-registry" ...
I0301 22:29:05.934027   51771 interface.go:26] Installing "openshift-router" ...
I0301 22:29:05.934034   51771 interface.go:26] Installing "centos-imagestreams" ...
I0301 22:29:05.934039   51771 interface.go:26] Installing "sample-templates" ...
I0301 22:29:05.934045   51771 interface.go:26] Installing "persistent-volumes" ...
I0301 22:29:05.934050   51771 interface.go:26] Installing "openshift-web-console-operator" ...
I0301 22:29:05.934129   51771 interface.go:26] Installing "sample-templates/mongodb" ...
I0301 22:29:05.934141   51771 apply_list.go:67] Installing "centos-imagestreams"
I0301 22:29:05.934172   51771 apply_list.go:67] Installing "sample-templates/mongodb"
I0301 22:29:05.934145   51771 interface.go:26] Installing "sample-templates/mysql" ...
I0301 22:29:05.934296   51771 interface.go:26] Installing "sample-templates/cakephp quickstart" ...
I0301 22:29:05.934306   51771 interface.go:26] Installing "sample-templates/django quickstart" ...
I0301 22:29:05.934315   51771 interface.go:26] Installing "sample-templates/rails quickstart" ...
I0301 22:29:05.934326   51771 interface.go:26] Installing "sample-templates/mariadb" ...
I0301 22:29:05.934335   51771 interface.go:26] Installing "sample-templates/postgresql" ...
I0301 22:29:05.934343   51771 interface.go:26] Installing "sample-templates/dancer quickstart" ...
I0301 22:29:05.934351   51771 interface.go:26] Installing "sample-templates/nodejs quickstart" ...
I0301 22:29:05.934360   51771 interface.go:26] Installing "sample-templates/jenkins pipeline ephemeral" ...
I0301 22:29:05.934375   51771 interface.go:26] Installing "sample-templates/sample pipeline" ...
I0301 22:29:05.934409   51771 apply_list.go:67] Installing "sample-templates/sample pipeline"
I0301 22:29:05.934539   51771 apply_list.go:67] Installing "sample-templates/mysql"
I0301 22:29:05.934635   51771 apply_list.go:67] Installing "sample-templates/cakephp quickstart"
I0301 22:29:05.934722   51771 apply_list.go:67] Installing "sample-templates/dancer quickstart"
I0301 22:29:05.934724   51771 apply_list.go:67] Installing "sample-templates/nodejs quickstart"
I0301 22:29:05.934748   51771 apply_list.go:67] Installing "sample-templates/jenkins pipeline ephemeral"
I0301 22:29:05.934772   51771 apply_list.go:67] Installing "sample-templates/mariadb"
I0301 22:29:05.934796   51771 apply_list.go:67] Installing "sample-templates/django quickstart"
I0301 22:29:05.934815   51771 apply_list.go:67] Installing "sample-templates/rails quickstart"
I0301 22:29:05.934343   51771 apply_template.go:81] Installing "openshift-web-console-operator"
I0301 22:29:05.934826   51771 apply_list.go:67] Installing "sample-templates/postgresql"
I0301 22:29:08.010606   51771 interface.go:41] Finished installing "sample-templates/mongodb" "sample-templates/mysql" "sample-templates/cakephp quickstart" "sample-templates/django quickstart" "sample-templates/rails quickstart" "sample-templates/mariadb" "sample-templates/postgresql" "sample-templates/dancer quickstart" "sample-templates/nodejs quickstart" "sample-templates/jenkins pipeline ephemeral" "sample-templates/sample pipeline"
I0301 22:29:50.500686   51771 interface.go:41] Finished installing "openshift-image-registry" "openshift-router" "centos-imagestreams" "sample-templates" "persistent-volumes" "openshift-web-console-operator"
Login to server ...
Creating initial project "myproject" ...
Server Information ...
OpenShift server started.The server is accessible via web console at:https://127.0.0.1:8443You are logged in as:User:     developerPassword: To login as administrator:oc login -u system:admin

登陆:

$ oc login -u system:admin

查看命令空间:

 # oc get ns
NAME                            STATUS    AGE
default                         Active    6m
kube-dns                        Active    6m
kube-proxy                      Active    6m
kube-public                     Active    6m
kube-system                     Active    6m
myproject                       Active    2m
openshift                       Active    3m
openshift-apiserver             Active    6m
openshift-controller-manager    Active    3m
openshift-core-operators        Active    6m
openshift-infra                 Active    6m
openshift-node                  Active    3m
openshift-service-cert-signer   Active    6m
openshift-web-console           Active    3m

发现与kubectl差不多。

查看所有Pods如下:

$ oc get pods --all-namespaces
NAMESPACE                       NAME                                                      READY     STATUS      RESTARTS   AGE
default                         docker-registry-1-72zc5                                   1/1       Running     0          5m
default                         persistent-volume-setup-75s9s                             0/1       Completed   0          6m
default                         router-1-nglvw                                            1/1       Running     0          6m
kube-dns                        kube-dns-zqs5d                                            1/1       Running     0          9m
kube-proxy                      kube-proxy-p75mh                                          1/1       Running     0          9m
kube-system                     kube-controller-manager-localhost                         1/1       Running     0          9m
kube-system                     kube-scheduler-localhost                                  1/1       Running     0          9m
kube-system                     master-api-localhost                                      1/1       Running     0          8m
kube-system                     master-etcd-localhost                                     1/1       Running     0          8m
openshift-apiserver             openshift-apiserver-4rwzd                                 1/1       Running     0          9m
openshift-controller-manager    openshift-controller-manager-wvwkw                        1/1       Running     0          6m
openshift-core-operators        openshift-service-cert-signer-operator-6d477f986b-rkcww   1/1       Running     0          9m
openshift-core-operators        openshift-web-console-operator-664b974ff5-vtwm8           1/1       Running     0          6m
openshift-service-cert-signer   apiservice-cabundle-injector-8ffbbb6dc-6lkvl              1/1       Running     0          7m
openshift-service-cert-signer   service-serving-cert-signer-668c45d5f-qjwkj               1/1       Running     0          7m
openshift-web-console           webconsole-c877c8b45-m5hpx                                1/1       Running     0          5m$ kubectl get pods --all-namespaces
NAMESPACE                       NAME                                                      READY     STATUS      RESTARTS   AGE
default                         docker-registry-1-72zc5                                   1/1       Running     0          5m
default                         persistent-volume-setup-75s9s                             0/1       Completed   0          6m
default                         router-1-nglvw                                            1/1       Running     0          5m
kube-dns                        kube-dns-zqs5d                                            1/1       Running     0          8m
kube-proxy                      kube-proxy-p75mh                                          1/1       Running     0          8m
kube-system                     kube-controller-manager-localhost                         1/1       Running     0          9m
kube-system                     kube-scheduler-localhost                                  1/1       Running     0          9m
kube-system                     master-api-localhost                                      1/1       Running     0          8m
kube-system                     master-etcd-localhost                                     1/1       Running     0          8m
openshift-apiserver             openshift-apiserver-4rwzd                                 1/1       Running     0          8m
openshift-controller-manager    openshift-controller-manager-wvwkw                        1/1       Running     0          6m
openshift-core-operators        openshift-service-cert-signer-operator-6d477f986b-rkcww   1/1       Running     0          8m
openshift-core-operators        openshift-web-console-operator-664b974ff5-vtwm8           1/1       Running     0          6m
openshift-service-cert-signer   apiservice-cabundle-injector-8ffbbb6dc-6lkvl              1/1       Running     0          7m
openshift-service-cert-signer   service-serving-cert-signer-668c45d5f-qjwkj               1/1       Running     0          7m
openshift-web-console           webconsole-c877c8b45-m5hpx                                1/1       Running     0          5m

访问Dashboard

地址为:https://8.134.68.154:8443/console

但是访问会失败,会重定向到127.0.0.1,解决方案如下:

$ oc cluster down
$ rm -rf ./openshift.local.clusterup/
$ oc cluster up --public-hostname=8.134.68.154

重启后,再访问就可以了。

 

oc常用命令

# 登陆
oc login -u system -p admin https://8.134.68.154:8443
oc login -u developer -p pkslow https://8.134.68.154:8443
oc login -u= -p= --server= --insecure-skip-tls-verify# 切换project
oc project 
oc login -n # 创建资源
oc create -f myobject.yaml -n oc create configmap propsfilecm --from-file=application.properties
oc set volumes dc/myapp --add --overwrite=true --name=configmap-volume --mount-path=/data -t configmap --configmap-name=propsfilecmoc create secret generic oia-secret --from-literal=username=myuser --from-literal=password=mypassword
oc set volumes dc/myapp --add --name=secret-volume --mount-path=/opt/app-root/ --secret-name=oia-secret# 更新
oc patch svc mysvc --type merge --patch '{"spec":{"ports":[{"port": 8080, "targetPort": 5000 }]}}'# 调试访问
oc exec  cat /opt/app-root/myapp.config
oc rsh # 伸缩
oc scale dc  --replicas=5
oc autoscale dc/app-cli --min 2 --max 5 --cpu-percent=75# 其它
oc whoami
oc status
oc logs pod 
oc get pods --all-namespaces
oc describe pod 
oc get services --sort-by=.metadata.name
oc delete all -l app=tomcat
oc delete pod  --grace-period=0
oc export bc,dc,is,svc --as-template=myapp.yaml

用到的Images:

# docker images
REPOSITORY                                     TAG       IMAGE ID       CREATED        SIZE
openshift/origin-node                          v3.11     3f7a62b09e77   3 months ago   1.2GB
openshift/origin-control-plane                 v3.11     6608ab37a132   3 months ago   839MB
openshift/origin-haproxy-router                v3.11     ecaa11886824   3 months ago   417MB
openshift/origin-deployer                      v3.11     d35bd5080535   3 months ago   390MB
openshift/origin-hyperkube                     v3.11     0cfb433fadc5   3 months ago   515MB
openshift/origin-cli                           v3.11     33db4aca59ae   3 months ago   390MB
openshift/origin-hypershift                    v3.11     9e866d795822   3 months ago   556MB
openshift/origin-pod                           v3.11     09e1f40f223e   3 months ago   267MB
openshift/origin-docker-registry               v3.11     9dffb2abf1dd   3 years ago    310MB
openshift/origin-web-console                   v3.11     be30b6cce5fa   3 years ago    339MB
openshift/origin-service-serving-cert-signer   v3.11     47dadf9d43b6   3 years ago    276MB

相关内容

热门资讯

喜欢穿一身黑的男生性格(喜欢穿... 今天百科达人给各位分享喜欢穿一身黑的男生性格的知识,其中也会对喜欢穿一身黑衣服的男人人好相处吗进行解...
发春是什么意思(思春和发春是什... 本篇文章极速百科给大家谈谈发春是什么意思,以及思春和发春是什么意思对应的知识点,希望对各位有所帮助,...
网络用语zl是什么意思(zl是... 今天给各位分享网络用语zl是什么意思的知识,其中也会对zl是啥意思是什么网络用语进行解释,如果能碰巧...
为什么酷狗音乐自己唱的歌不能下... 本篇文章极速百科小编给大家谈谈为什么酷狗音乐自己唱的歌不能下载到本地?,以及为什么酷狗下载的歌曲不是...
苏州离哪个飞机场近(苏州离哪个... 本篇文章极速百科小编给大家谈谈苏州离哪个飞机场近,以及苏州离哪个飞机场近点对应的知识点,希望对各位有...
家里可以做假山养金鱼吗(假山能... 今天百科达人给各位分享家里可以做假山养金鱼吗的知识,其中也会对假山能放鱼缸里吗进行解释,如果能碰巧解...
华为下载未安装的文件去哪找(华... 今天百科达人给各位分享华为下载未安装的文件去哪找的知识,其中也会对华为下载未安装的文件去哪找到进行解...
四分五裂是什么生肖什么动物(四... 本篇文章极速百科小编给大家谈谈四分五裂是什么生肖什么动物,以及四分五裂打一生肖是什么对应的知识点,希...
怎么往应用助手里添加应用(应用... 今天百科达人给各位分享怎么往应用助手里添加应用的知识,其中也会对应用助手怎么添加微信进行解释,如果能...
客厅放八骏马摆件可以吗(家里摆... 今天给各位分享客厅放八骏马摆件可以吗的知识,其中也会对家里摆八骏马摆件好吗进行解释,如果能碰巧解决你...