服务器信息

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

装置Docker

命令如下:

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

装置胜利后,检查一下版本:

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

要批改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 versionoc v3.11.0+0cbc58bkubernetes v1.11.0+d4cacc0features: Basic-Auth GSSAPI Kerberos SPNEGO

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

$ oc cluster upGetting 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 availableI0301 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:     developer    Password: <any value>To login as administrator:    oc login -u system:admin

登陆:

$ oc login -u system:admin

查看命令空间:

 # oc get nsNAME                            STATUS    AGEdefault                         Active    6mkube-dns                        Active    6mkube-proxy                      Active    6mkube-public                     Active    6mkube-system                     Active    6mmyproject                       Active    2mopenshift                       Active    3mopenshift-apiserver             Active    6mopenshift-controller-manager    Active    3mopenshift-core-operators        Active    6mopenshift-infra                 Active    6mopenshift-node                  Active    3mopenshift-service-cert-signer   Active    6mopenshift-web-console           Active    3m

发现与kubectl差不多。

查看所有Pods如下:

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

拜访Dashboard

地址为:https://8.134.68.154:8443/con...

然而拜访会失败,会重定向到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:8443oc login -u developer -p pkslow https://8.134.68.154:8443oc login -u=<username> -p=<password> --server=<your-openshift-server> --insecure-skip-tls-verify# 切换projectoc project <myproject>oc login -n <myproject># 创立资源oc create -f myobject.yaml -n <myproject>oc create configmap propsfilecm --from-file=application.propertiesoc set volumes dc/myapp --add --overwrite=true --name=configmap-volume --mount-path=/data -t configmap --configmap-name=propsfilecm oc create secret generic oia-secret --from-literal=username=myuser --from-literal=password=mypasswordoc 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 <mypod> cat /opt/app-root/myapp.configoc rsh <mypodoc debug dc <mydc># 伸缩oc scale dc <mydc> --replicas=5oc autoscale dc/app-cli --min 2 --max 5 --cpu-percent=75# 其它oc whoamioc statusoc logs pod <mypod>oc get pods --all-namespacesoc describe pod <mypod>oc get services --sort-by=.metadata.nameoc delete all -l app=tomcatoc delete pod <mypod> --grace-period=0oc export bc,dc,is,svc --as-template=myapp.yaml

用到的Images:

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

References:

Github openshift/origin releases

Access fail redirect to 127.0.0.1