服务器信息
在阿里云买了个抢占式的服务器,地区为华南广州,零碎为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