{"id":32084,"date":"2023-06-02T23:05:48","date_gmt":"2023-11-24T08:00:20","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e7%8e%a9%e4%b8%80%e4%b8%8bminishift%e5%90%a7%ef%bc%81%e8%bd%bb%e6%9d%be%e4%bd%93%e9%aa%8ckubernetes%e7%9a%84%e4%b9%90%e8%b6%a3%e3%80%82\/"},"modified":"2024-04-30T07:05:31","modified_gmt":"2024-04-29T23:05:31","slug":"%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e7%8e%a9%e4%b8%80%e4%b8%8bminishift%e5%90%a7%ef%bc%81%e8%bd%bb%e6%9d%be%e4%bd%93%e9%aa%8ckubernetes%e7%9a%84%e4%b9%90%e8%b6%a3%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e7%8e%a9%e4%b8%80%e4%b8%8bminishift%e5%90%a7%ef%bc%81%e8%bd%bb%e6%9d%be%e4%bd%93%e9%aa%8ckubernetes%e7%9a%84%e4%b9%90%e8%b6%a3%e3%80%82\/","title":{"rendered":"\u8ba9\u6211\u4eec\u6765\u73a9\u4e00\u4e0bMinishift\u5427\uff01\u8f7b\u677e\u4f53\u9a8cKubernetes\u7684\u4e50\u8da3"},"content":{"rendered":"<h1>\u9996\u5148<\/h1>\n<p>\u6211\u8a66\u73a9\u4e86\u4e00\u4e0b\u53ef\u4ee5\u514d\u8cbb\u6e2c\u8a66Openshift\u7684minishift\u3002<\/p>\n<h2>\u73af\u5883<\/h2>\n<p>macOS Catalina (10.15.4)<br \/>\n\u6700\u65b0\u7684Minishift\u7248\u672c\u662f1.34.3\uff0c\u8bf7\u786e\u8ba4\u3002<\/p>\n<p>\u5728Minishift\u4e2d\uff0c\u9700\u8981\u4e00\u4e2a\u865a\u62df\u5316\u8f6f\u4ef6\u624d\u80fd\u542f\u52a8OpenShift\u96c6\u7fa4\u7684\u865a\u62df\u673a\uff0c\u56e0\u6b64\u9700\u8981\u5b89\u88c5\u5e76\u542f\u7528\u865a\u62df\u5316\u8f6f\u4ef6\u3002<\/p>\n<h3>\u5b89\u88c5\u6b65\u9aa4<\/h3>\n<p>\u6839\u636e\u4e0d\u540c\u7684\u5e73\u53f0\uff0c\u6709\u4e0d\u540c\u7684\u5b89\u88c5\u6b65\u9aa4\uff1a<br \/>\n&#8211; macOS \u2192 \u4f7f\u7528hyperkit<br \/>\n&#8211; Linux \u2192 \u4f7f\u7528KVM<br \/>\n&#8211; Windows \u2192 \u4f7f\u7528Hyper-V<br \/>\n&#8211; \u6240\u6709\u5e73\u53f0 \u2192 \u4f7f\u7528VirtualBox<\/p>\n<p>\u6211\u6253\u7b97\u8fd9\u6b21\u4f7f\u7528VirtualBox\u3002<br \/>\n\u539f\u56e0\u662f\u56e0\u4e3a\u5f88\u591a\u4eba\u90fd\u9a8c\u8bc1\u4e86\u8fd9\u79cd\u5b89\u88c5\u65b9\u6cd5\uff0c\u5e76\u4e14\u6211\u8fc7\u53bb\u4e5f\u8bd5\u8fc7\u3002<\/p>\n<h4>VirtualBox\u7684\u5b89\u88c5<\/h4>\n<p>\u6211\u4f1a\u6267\u884c\u6b64\u547d\u4ee4\u3002<\/p>\n<pre class=\"post-pre\"><code>brew cask install minishift\r\n<\/code><\/pre>\n<h4>\u5b89\u88dd Minishift<\/h4>\n<p>\u6211\u5c06\u6267\u884c\u6b64\u547d\u4ee4<\/p>\n<pre class=\"post-pre\"><code>brew cask install minishift\r\n<\/code><\/pre>\n<h3>\u4f7f\u7528VirtualBox\u542f\u52a8minishift\u3002<\/h3>\n<p>\u901a\u8fc7\u5728\u53c2\u6570\u4e2d\u6307\u5b9a&#8221;&#8211;vm-driver=virtualbox&#8221;\uff0c\u60a8\u53ef\u4ee5\u542f\u52a8virtualbox\u6765\u8fd0\u884c\u3002<\/p>\n<pre class=\"post-pre\"><code>minishift start --vm-driver=virtualbox\r\n<\/code><\/pre>\n<p>\u6267\u884c\u65e5\u5fd7<\/p>\n<pre class=\"post-pre\"><code>-- Starting profile 'minishift'\r\n-- Check if deprecated options are used ... OK\r\n-- Checking if https:\/\/github.com is reachable ... OK\r\n-- Checking if requested OpenShift version 'v3.11.0' is valid ... OK\r\n-- Checking if requested OpenShift version 'v3.11.0' is supported ... OK\r\n-- Checking if requested hypervisor 'virtualbox' is supported on this platform ... OK\r\n-- Checking if VirtualBox is installed ... OK\r\n-- Checking the ISO URL ... OK\r\n-- Downloading OpenShift binary 'oc' version 'v3.11.0'\r\n 53.27 MiB \/ 53.27 MiB [============================================] 100.00% 0s-- Downloading OpenShift v3.11.0 checksums ... OK\r\n-- Checking if provided oc flags are supported ... OK\r\n-- Starting the OpenShift cluster using 'virtualbox' hypervisor ...\r\n-- Minishift VM will be configured with ...\r\n   Memory:    4 GB\r\n   vCPUs :    2\r\n   Disk size: 20 GB\r\n\r\n   Downloading ISO 'https:\/\/github.com\/minishift\/minishift-centos-iso\/releases\/download\/v1.16.0\/minishift-centos7.iso'\r\n 370.00 MiB \/ 370.00 MiB [==========================================] 100.00% 0s\r\n-- Starting Minishift VM .................................. OK\r\n-- Checking for IP address ... OK\r\n-- Checking for nameservers ... OK\r\n-- Checking if external host is reachable from the Minishift VM ...\r\n   Pinging 8.8.8.8 ... OK\r\n-- Checking HTTP connectivity from the VM ...\r\n   Retrieving http:\/\/minishift.io\/index.html ... OK\r\n-- Checking if persistent storage volume is mounted ... OK\r\n-- Checking available disk space ... 1% used OK\r\n-- Writing current configuration for static assignment of IP address ... OK\r\n   Importing 'openshift\/origin-control-plane:v3.11.0' . CACHE MISS\r\n   Importing 'openshift\/origin-docker-registry:v3.11.0' . CACHE MISS\r\n   Importing 'openshift\/origin-haproxy-router:v3.11.0' . CACHE MISS\r\n-- OpenShift cluster will be configured with ...\r\n   Version: v3.11.0\r\n-- Pulling the OpenShift Container Image ............. OK\r\n-- Copying oc binary from the OpenShift container image to VM ... OK\r\n-- Starting OpenShift cluster ............................................................\r\nGetting a Docker client ...\r\nChecking if image openshift\/origin-control-plane:v3.11.0 is available ...\r\nPulling image openshift\/origin-cli:v3.11.0\r\nE1022 15:53:08.320557    2643 helper.go:173] Reading docker config from \/home\/docker\/.docker\/config.json failed: open \/home\/docker\/.docker\/config.json: no such file or directory, will attempt to pull image docker.io\/openshift\/origin-cli:v3.11.0 anonymously\r\nImage pull complete\r\nPulling image openshift\/origin-node:v3.11.0\r\nE1022 15:53:13.117920    2643 helper.go:173] Reading docker config from \/home\/docker\/.docker\/config.json failed: open \/home\/docker\/.docker\/config.json: no such file or directory, will attempt to pull image docker.io\/openshift\/origin-node:v3.11.0 anonymously\r\nPulled 5\/6 layers, 88% complete\r\nPulled 6\/6 layers, 100% complete\r\nExtracting\r\nImage pull complete\r\nChecking type of volume mount ...\r\nDetermining server IP ...\r\nUsing public hostname IP 192.168.99.100 as the host IP\r\nChecking if OpenShift is already running ...\r\nChecking for supported Docker version (=&gt;1.22) ...\r\nChecking if insecured registry is configured properly in Docker ...\r\nChecking if required ports are available ...\r\nChecking if OpenShift client is configured properly ...\r\nChecking if image openshift\/origin-control-plane:v3.11.0 is available ...\r\nStarting OpenShift using openshift\/origin-control-plane:v3.11.0 ...\r\nI1022 15:53:26.585128    2643 config.go:40] Running \"create-master-config\"\r\nI1022 15:53:28.548205    2643 config.go:46] Running \"create-node-config\"\r\nI1022 15:53:29.414864    2643 flags.go:30] Running \"create-kubelet-flags\"\r\nI1022 15:53:29.756520    2643 run_kubelet.go:49] Running \"start-kubelet\"\r\nI1022 15:53:29.943541    2643 run_self_hosted.go:181] Waiting for the kube-apiserver to be ready ...\r\nI1022 15:54:13.959145    2643 interface.go:26] Installing \"kube-proxy\" ...\r\nI1022 15:54:13.959163    2643 interface.go:26] Installing \"kube-dns\" ...\r\nI1022 15:54:13.959169    2643 interface.go:26] Installing \"openshift-service-cert-signer-operator\" ...\r\nI1022 15:54:13.959185    2643 interface.go:26] Installing \"openshift-apiserver\" ...\r\nI1022 15:54:13.959211    2643 apply_template.go:81] Installing \"openshift-apiserver\"\r\nI1022 15:54:13.960047    2643 apply_template.go:81] Installing \"kube-proxy\"\r\nI1022 15:54:13.961077    2643 apply_template.go:81] Installing \"kube-dns\"\r\nI1022 15:54:13.961225    2643 apply_template.go:81] Installing \"openshift-service-cert-signer-operator\"\r\nI1022 15:54:17.965245    2643 interface.go:41] Finished installing \"kube-proxy\" \"kube-dns\" \"openshift-service-cert-signer-operator\" \"openshift-apiserver\"\r\nI1022 15:56:45.986497    2643 run_self_hosted.go:242] openshift-apiserver available\r\nI1022 15:56:45.987410    2643 interface.go:26] Installing \"openshift-controller-manager\" ...\r\nI1022 15:56:45.987432    2643 apply_template.go:81] Installing \"openshift-controller-manager\"\r\nI1022 15:56:49.025267    2643 interface.go:41] Finished installing \"openshift-controller-manager\"\r\nAdding default OAuthClient redirect URIs ...\r\nAdding registry ...\r\nAdding persistent-volumes ...\r\nAdding web-console ...\r\nAdding centos-imagestreams ...\r\nAdding router ...\r\nAdding sample-templates ...\r\nI1022 15:56:49.051658    2643 interface.go:26] Installing \"openshift-image-registry\" ...\r\nI1022 15:56:49.051668    2643 interface.go:26] Installing \"persistent-volumes\" ...\r\nI1022 15:56:49.051675    2643 interface.go:26] Installing \"openshift-web-console-operator\" ...\r\nI1022 15:56:49.051681    2643 interface.go:26] Installing \"centos-imagestreams\" ...\r\nI1022 15:56:49.051685    2643 interface.go:26] Installing \"openshift-router\" ...\r\nI1022 15:56:49.051689    2643 interface.go:26] Installing \"sample-templates\" ...\r\nI1022 15:56:49.051733    2643 interface.go:26] Installing \"sample-templates\/jenkins pipeline ephemeral\" ...\r\nI1022 15:56:49.051739    2643 interface.go:26] Installing \"sample-templates\/mongodb\" ...\r\nI1022 15:56:49.051743    2643 interface.go:26] Installing \"sample-templates\/mysql\" ...\r\nI1022 15:56:49.051746    2643 interface.go:26] Installing \"sample-templates\/postgresql\" ...\r\nI1022 15:56:49.051751    2643 interface.go:26] Installing \"sample-templates\/cakephp quickstart\" ...\r\nI1022 15:56:49.051755    2643 interface.go:26] Installing \"sample-templates\/rails quickstart\" ...\r\nI1022 15:56:49.051759    2643 interface.go:26] Installing \"sample-templates\/sample pipeline\" ...\r\nI1022 15:56:49.051763    2643 interface.go:26] Installing \"sample-templates\/mariadb\" ...\r\nI1022 15:56:49.051767    2643 interface.go:26] Installing \"sample-templates\/dancer quickstart\" ...\r\nI1022 15:56:49.051771    2643 interface.go:26] Installing \"sample-templates\/django quickstart\" ...\r\nI1022 15:56:49.051775    2643 interface.go:26] Installing \"sample-templates\/nodejs quickstart\" ...\r\nI1022 15:56:49.051814    2643 apply_list.go:67] Installing \"sample-templates\/nodejs quickstart\"\r\nI1022 15:56:49.052594    2643 apply_template.go:81] Installing \"openshift-web-console-operator\"\r\nI1022 15:56:49.052748    2643 apply_list.go:67] Installing \"centos-imagestreams\"\r\nI1022 15:56:49.053126    2643 apply_list.go:67] Installing \"sample-templates\/jenkins pipeline ephemeral\"\r\nI1022 15:56:49.053216    2643 apply_list.go:67] Installing \"sample-templates\/mongodb\"\r\nI1022 15:56:49.053280    2643 apply_list.go:67] Installing \"sample-templates\/mysql\"\r\nI1022 15:56:49.053344    2643 apply_list.go:67] Installing \"sample-templates\/postgresql\"\r\nI1022 15:56:49.053467    2643 apply_list.go:67] Installing \"sample-templates\/cakephp quickstart\"\r\nI1022 15:56:49.053545    2643 apply_list.go:67] Installing \"sample-templates\/rails quickstart\"\r\nI1022 15:56:49.053610    2643 apply_list.go:67] Installing \"sample-templates\/sample pipeline\"\r\nI1022 15:56:49.053671    2643 apply_list.go:67] Installing \"sample-templates\/mariadb\"\r\nI1022 15:56:49.053731    2643 apply_list.go:67] Installing \"sample-templates\/dancer quickstart\"\r\nI1022 15:56:49.053791    2643 apply_list.go:67] Installing \"sample-templates\/django quickstart\"\r\nI1022 15:57:02.946920    2643 interface.go:41] Finished installing \"sample-templates\/jenkins pipeline ephemeral\" \"sample-templates\/mongodb\" \"sample-templates\/mysql\" \"sample-templates\/postgresql\" \"sample-templates\/cakephp quickstart\" \"sample-templates\/rails quickstart\" \"sample-templates\/sample pipeline\" \"sample-templates\/mariadb\" \"sample-templates\/dancer quickstart\" \"sample-templates\/django quickstart\" \"sample-templates\/nodejs quickstart\"\r\nI1022 15:57:32.386272    2643 interface.go:41] Finished installing \"openshift-image-registry\" \"persistent-volumes\" \"openshift-web-console-operator\" \"centos-imagestreams\" \"openshift-router\" \"sample-templates\"\r\nLogin to server ...\r\nCreating initial project \"myproject\" ...\r\nServer Information ...\r\nOpenShift server started.\r\n\r\nThe server is accessible via web console at:\r\n    https:\/\/192.168.99.100:8443\/console\r\n\r\nYou are logged in as:\r\n    User:     developer\r\n    Password: &lt;any value&gt;\r\n\r\nTo login as administrator:\r\n    oc login -u system:admin\r\n<\/code><\/pre>\n<p>\u901a\u8fc7\u8fd9\u6837\u7684\u64cd\u4f5c\uff0cMinishift\u5df2\u7ecf\u6210\u529f\u542f\u52a8\u4e86\u3002<\/p>\n<h3>\u6211\u8bd5\u7740\u767b\u5f55<\/h3>\n<p>\u9996\u5148\uff0c\u6211\u5e0c\u671b\u5927\u5bb6\u5173\u6ce8\u4e00\u4e0b\u521a\u624d\u7684\u65e5\u5fd7\u3002<br \/>\n\u5982\u679c\u4f60\u770b\u4e00\u4e0b\u6700\u540e\u4e00\u90e8\u5206\uff0c\u5c31\u4f1a\u53d1\u73b0\u5199\u7740\u4ee5\u4e0b\u5185\u5bb9\u3002<\/p>\n<pre class=\"post-pre\"><code>The server is accessible via web console at:\r\n    https:\/\/192.168.99.100:8443\/console\r\n\r\nYou are logged in as:\r\n    User:     developer\r\n    Password: &lt;any value&gt;\r\n\r\nTo login as administrator:\r\n    oc login -u system:admin\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d103537434c4406bf081e\/23-0.png\" alt=\"\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8 2020-10-23 1.03.48.png\" \/><\/div>\n<h3>\u4f7f\u7528oc\u547d\u4ee4\u767b\u5f55<\/h3>\n<p>\u53c2\u8003\u6307\u5357\uff1a\u4f7f\u7528minishift\u5feb\u901f\u5165\u95e8<\/p>\n<p>\u9996\u5148\uff0c\u5c06oc\u547d\u4ee4\u6dfb\u52a0\u5230\u7cfb\u7edf\u8def\u5f84\u4e2d\u3002<\/p>\n<pre class=\"post-pre\"><code>eval $(minishift oc-env)\r\n<\/code><\/pre>\n<p>\u6211\u4f1a\u5148\u4f7f\u7528\u7ba1\u7406\u5458\u7528\u6237\u8fdb\u884c\u767b\u5f55<\/p>\n<pre class=\"post-pre\"><code>\u276f oc login -u system:admin\r\nLogged into \"https:\/\/192.168.99.100:8443\" as \"system:admin\" using existing credentials.\r\n\r\nYou have access to the following projects and can switch between them with 'oc project &lt;projectname&gt;':\r\n\r\n    default\r\n    kube-dns\r\n    kube-proxy\r\n    kube-public\r\n    kube-system\r\n  * myproject\r\n    openshift\r\n    openshift-apiserver\r\n    openshift-controller-manager\r\n    openshift-core-operators\r\n    openshift-infra\r\n    openshift-node\r\n    openshift-service-cert-signer\r\n    openshift-web-console\r\n\r\nUsing project \"myproject\".\r\n<\/code><\/pre>\n<h3>\u4f7f\u7528oc\u547d\u4ee4\u90e8\u7f72\u4e00\u4e2a\u793a\u4f8b\u7684Node.js\u5e94\u7528\u7a0b\u5e8f<\/h3>\n<h4>\u521b\u5efa\u4e00\u4e2aNode.js\u793a\u4f8b\u5e94\u7528\u7a0b\u5e8f<\/h4>\n<pre class=\"post-pre\"><code>\u276f oc new-app https:\/\/github.com\/sclorg\/nodejs-ex -l name=myapp\r\n--&gt; Found image 93de123 (2 years old) in image stream \"openshift\/nodejs\" under tag \"10\" for \"nodejs\"\r\n\r\n    Node.js 10.12.0\r\n    ---------------\r\n    Node.js  available as docker container is a base platform for building and running various Node.js  applications and frameworks. Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I\/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.\r\n\r\n    Tags: builder, nodejs, nodejs-10.12.0\r\n\r\n    * The source repository appears to match: nodejs\r\n    * A source build using source code from https:\/\/github.com\/sclorg\/nodejs-ex will be created\r\n      * The resulting image will be pushed to image stream tag \"nodejs-ex:latest\"\r\n      * Use 'start-build' to trigger a new build\r\n    * This image will be deployed in deployment config \"nodejs-ex\"\r\n    * Port 8080\/tcp will be load balanced by service \"nodejs-ex\"\r\n      * Other containers can access this service through the hostname \"nodejs-ex\"\r\n\r\n--&gt; Creating resources with label name=myapp ...\r\n    imagestream.image.openshift.io \"nodejs-ex\" created\r\n    buildconfig.build.openshift.io \"nodejs-ex\" created\r\n    deploymentconfig.apps.openshift.io \"nodejs-ex\" created\r\n    service \"nodejs-ex\" created\r\n--&gt; Success\r\n    Build scheduled, use 'oc logs -f bc\/nodejs-ex' to track its progress.\r\n    Application is not exposed. You can expose services to the outside world by executing one or more of the commands below:\r\n     'oc expose svc\/nodejs-ex'\r\n    Run 'oc status' to view your app.\r\n<\/code><\/pre>\n<h4>\u5728\u5e94\u7528\u7a0b\u5e8f\u6784\u5efa\u548c\u90e8\u7f72\u4e4b\u524d\uff0c\u8ffd\u8e2a\u6784\u5efa\u65e5\u5fd7\u3002<\/h4>\n<pre class=\"post-pre\"><code>\u276f oc logs -f bc\/nodejs-ex\r\nCloning \"https:\/\/github.com\/sclorg\/nodejs-ex\" ...\r\n    Commit: 7b9f57949786059a3fab03b8493279c945770fb0 (Merge pull request #249 from multi-arch\/master)\r\n    Author: Honza Horak &lt;hhorak@redhat.com&gt;\r\n    Date:   Wed Sep 23 10:52:52 2020 +0200\r\nUsing 172.30.1.1:5000\/openshift\/nodejs@sha256:3cc041334eef8d5853078a0190e46a2998a70ad98320db512968f1de0561705e as the s2i builder image\r\n---&gt; Installing application source\r\n---&gt; Building your Node application from source\r\nCurrent git config\r\nurl.https:\/\/github.com.insteadof=git@github.com:\r\nurl.https:\/\/.insteadof=ssh:\/\/\r\nurl.https:\/\/github.com.insteadof=ssh:\/\/git@github.com\r\ncore.repositoryformatversion=0\r\ncore.filemode=true\r\ncore.bare=false\r\ncore.logallrefupdates=true\r\nremote.origin.url=https:\/\/github.com\/sclorg\/nodejs-ex\r\nremote.origin.fetch=+refs\/heads\/master:refs\/remotes\/origin\/master\r\nbranch.master.remote=origin\r\nbranch.master.merge=refs\/heads\/master\r\n---&gt; Installing dependencies\r\n---&gt; Using 'npm install -s --only=production'\r\nadded 121 packages from 342 contributors and audited 121 packages in 4.254s\r\nfound 10 vulnerabilities (3 low, 2 moderate, 4 high, 1 critical)\r\nrun `npm audit fix` to fix them, or `npm audit` for details\r\n---&gt; Pruning the development dependencies\r\nnpm info it worked if it ends with ok\r\nnpm info using npm@6.4.1\r\nnpm info using node@v10.12.0\r\nnpm timing stage:loadCurrentTree Completed in 238ms\r\nnpm timing stage:loadIdealTree:cloneCurrentTree Completed in 2ms\r\nnpm timing stage:loadIdealTree:loadShrinkwrap Completed in 110ms\r\nnpm timing stage:loadIdealTree:loadAllDepsIntoIdealTree Completed in 55ms\r\nnpm timing stage:loadIdealTree Completed in 198ms\r\nnpm timing stage:generateActionsToTake Completed in 14ms\r\nnpm timing audit compress Completed in 11ms\r\nnpm info audit Submitting payload of 7102bytes\r\nnpm timing stage:executeActions Completed in 200ms\r\nnpm timing stage:rollbackFailedOptional Completed in 1ms\r\nnpm timing stage:runTopLevelLifecycles Completed in 694ms\r\nnpm timing audit submit Completed in 509ms\r\nnpm http fetch POST 200 https:\/\/registry.npmjs.org\/-\/npm\/v1\/security\/audits\/quick 374ms\r\nnpm timing audit body Completed in 3ms\r\naudited 121 packages in 1.023s\r\nfound 10 vulnerabilities (3 low, 2 moderate, 4 high, 1 critical)\r\nrun `npm audit fix` to fix them, or `npm audit` for details\r\nnpm timing npm Completed in 1337ms\r\nnpm info ok\r\n---&gt; Cleaning up npm cache\r\n---&gt; Fix permissions on app-root\r\nPushing image 172.30.1.1:5000\/myproject\/nodejs-ex:latest ...\r\nPushed 0\/7 layers, 10% complete\r\nPushed 1\/7 layers, 14% complete\r\nPush successful\r\n<\/code><\/pre>\n<h4>\u786e\u8ba4\u5df2\u7ecf\u521b\u5efa\u7684\u8d44\u6e90<\/h4>\n<pre class=\"post-pre\"><code>\u276f oc status\r\nIn project My Project (myproject) on server https:\/\/192.168.99.100:8443\r\n\r\nsvc\/nodejs-ex - 172.30.239.166:8080\r\n  dc\/nodejs-ex deploys istag\/nodejs-ex:latest &lt;-\r\n    bc\/nodejs-ex source builds https:\/\/github.com\/sclorg\/nodejs-ex on openshift\/nodejs:10\r\n    deployment #1 deployed about a minute ago - 1 pod\r\n\r\n\r\n2 infos identified, use 'oc status --suggest' to see details.\r\n<\/code><\/pre>\n<h4>\u53d1\u5e03\u670d\u52a1<\/h4>\n<pre class=\"post-pre\"><code>\u276f oc expose svc\/nodejs-ex\r\nroute.route.openshift.io\/nodejs-ex exposed\r\n<\/code><\/pre>\n<h4>\u4f7f\u7528\u5e94\u7528\u7a0b\u5e8f<\/h4>\n<pre class=\"post-pre\"><code>\u276f minishift openshift service nodejs-ex --in-browser\r\nOpening the route\/NodePort http:\/\/nodejs-ex-myproject.192.168.99.100.nip.io in the default browser...\r\n<\/code><\/pre>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d103537434c4406bf081e\/41-0.png\" alt=\"\u30b9\u30af\u30ea\u30fc\u30f3\u30b7\u30e7\u30c3\u30c8 2020-10-23 1.19.23.png\" \/><\/div>\n<h4>\u786e\u8ba4port\u7b49<\/h4>\n<pre class=\"post-pre\"><code>\u276f oc get route\r\nNAME        HOST\/PORT                                   PATH      SERVICES    PORT       TERMINATION   WILDCARD\r\nnodejs-ex   nodejs-ex-myproject.192.168.99.100.nip.io             nodejs-ex   8080-tcp                 None\r\n<\/code><\/pre>\n<h4>7. \u5173\u95ed Minishift<\/h4>\n<pre class=\"post-pre\"><code>\u276f minishift stop\r\nStopping the OpenShift cluster...\r\nCluster stopped.\r\n<\/code><\/pre>\n<h3>\u7ed3\u675f (Chinese translation:<\/h3>\n<p>\u5f00\u653e\u5f0f\u8f6c\u79fb\u771f\u6709\u8da3\uff01\u795d\u4f60\u62e5\u6709\u7f8e\u597d\u7684Kubernetes\u751f\u6d3b\uff01<\/p>\n<h1>\u63d0\u4f9b\u53c2\u8003<\/h1>\n<p>\u516c\u5f0f\u6587\u4ef6<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u9996\u5148 \u6211\u8a66\u73a9\u4e86\u4e00\u4e0b\u53ef\u4ee5\u514d\u8cbb\u6e2c\u8a66Openshift\u7684minishift\u3002 \u73af\u5883 macOS Catalina ( [&hellip;]<\/p>\n","protected":false},"author":6,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-32084","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u8ba9\u6211\u4eec\u6765\u73a9\u4e00\u4e0bMinishift\u5427\uff01\u8f7b\u677e\u4f53\u9a8cKubernetes\u7684\u4e50\u8da3 - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u8ba9\u6211\u4eec\u6765\u73a9\u4e00\u4e0bminishift\u5427\uff01\u8f7b\u677e\u4f53\u9a8ckubernetes\u7684\u4e50\u8da3\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u8ba9\u6211\u4eec\u6765\u73a9\u4e00\u4e0bMinishift\u5427\uff01\u8f7b\u677e\u4f53\u9a8cKubernetes\u7684\u4e50\u8da3\" \/>\n<meta property=\"og:description\" content=\"\u9996\u5148 \u6211\u8a66\u73a9\u4e86\u4e00\u4e0b\u53ef\u4ee5\u514d\u8cbb\u6e2c\u8a66Openshift\u7684minishift\u3002 \u73af\u5883 macOS Catalina ( [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u8ba9\u6211\u4eec\u6765\u73a9\u4e00\u4e0bminishift\u5427\uff01\u8f7b\u677e\u4f53\u9a8ckubernetes\u7684\u4e50\u8da3\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-24T08:00:20+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-29T23:05:31+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d103537434c4406bf081e\/23-0.png\" \/>\n<meta name=\"author\" content=\"\u6587, \u7fd4\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6587, \u7fd4\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e7%8e%a9%e4%b8%80%e4%b8%8bminishift%e5%90%a7%ef%bc%81%e8%bd%bb%e6%9d%be%e4%bd%93%e9%aa%8ckubernetes%e7%9a%84%e4%b9%90%e8%b6%a3%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e7%8e%a9%e4%b8%80%e4%b8%8bminishift%e5%90%a7%ef%bc%81%e8%bd%bb%e6%9d%be%e4%bd%93%e9%aa%8ckubernetes%e7%9a%84%e4%b9%90%e8%b6%a3%e3%80%82\/\",\"name\":\"\u8ba9\u6211\u4eec\u6765\u73a9\u4e00\u4e0bMinishift\u5427\uff01\u8f7b\u677e\u4f53\u9a8cKubernetes\u7684\u4e50\u8da3 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-11-24T08:00:20+00:00\",\"dateModified\":\"2024-04-29T23:05:31+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e7%8e%a9%e4%b8%80%e4%b8%8bminishift%e5%90%a7%ef%bc%81%e8%bd%bb%e6%9d%be%e4%bd%93%e9%aa%8ckubernetes%e7%9a%84%e4%b9%90%e8%b6%a3%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e7%8e%a9%e4%b8%80%e4%b8%8bminishift%e5%90%a7%ef%bc%81%e8%bd%bb%e6%9d%be%e4%bd%93%e9%aa%8ckubernetes%e7%9a%84%e4%b9%90%e8%b6%a3%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e7%8e%a9%e4%b8%80%e4%b8%8bminishift%e5%90%a7%ef%bc%81%e8%bd%bb%e6%9d%be%e4%bd%93%e9%aa%8ckubernetes%e7%9a%84%e4%b9%90%e8%b6%a3%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u8ba9\u6211\u4eec\u6765\u73a9\u4e00\u4e0bMinishift\u5427\uff01\u8f7b\u677e\u4f53\u9a8cKubernetes\u7684\u4e50\u8da3\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c\",\"name\":\"\u6587, \u7fd4\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g\",\"caption\":\"\u6587, \u7fd4\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/wenxiang\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e7%8e%a9%e4%b8%80%e4%b8%8bminishift%e5%90%a7%ef%bc%81%e8%bd%bb%e6%9d%be%e4%bd%93%e9%aa%8ckubernetes%e7%9a%84%e4%b9%90%e8%b6%a3%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u8ba9\u6211\u4eec\u6765\u73a9\u4e00\u4e0bMinishift\u5427\uff01\u8f7b\u677e\u4f53\u9a8cKubernetes\u7684\u4e50\u8da3 - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u8ba9\u6211\u4eec\u6765\u73a9\u4e00\u4e0bminishift\u5427\uff01\u8f7b\u677e\u4f53\u9a8ckubernetes\u7684\u4e50\u8da3\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u8ba9\u6211\u4eec\u6765\u73a9\u4e00\u4e0bMinishift\u5427\uff01\u8f7b\u677e\u4f53\u9a8cKubernetes\u7684\u4e50\u8da3","og_description":"\u9996\u5148 \u6211\u8a66\u73a9\u4e86\u4e00\u4e0b\u53ef\u4ee5\u514d\u8cbb\u6e2c\u8a66Openshift\u7684minishift\u3002 \u73af\u5883 macOS Catalina ( [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u8ba9\u6211\u4eec\u6765\u73a9\u4e00\u4e0bminishift\u5427\uff01\u8f7b\u677e\u4f53\u9a8ckubernetes\u7684\u4e50\u8da3\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-11-24T08:00:20+00:00","article_modified_time":"2024-04-29T23:05:31+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/657d103537434c4406bf081e\/23-0.png"}],"author":"\u6587, \u7fd4","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6587, \u7fd4","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"8 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e7%8e%a9%e4%b8%80%e4%b8%8bminishift%e5%90%a7%ef%bc%81%e8%bd%bb%e6%9d%be%e4%bd%93%e9%aa%8ckubernetes%e7%9a%84%e4%b9%90%e8%b6%a3%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e7%8e%a9%e4%b8%80%e4%b8%8bminishift%e5%90%a7%ef%bc%81%e8%bd%bb%e6%9d%be%e4%bd%93%e9%aa%8ckubernetes%e7%9a%84%e4%b9%90%e8%b6%a3%e3%80%82\/","name":"\u8ba9\u6211\u4eec\u6765\u73a9\u4e00\u4e0bMinishift\u5427\uff01\u8f7b\u677e\u4f53\u9a8cKubernetes\u7684\u4e50\u8da3 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-11-24T08:00:20+00:00","dateModified":"2024-04-29T23:05:31+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e7%8e%a9%e4%b8%80%e4%b8%8bminishift%e5%90%a7%ef%bc%81%e8%bd%bb%e6%9d%be%e4%bd%93%e9%aa%8ckubernetes%e7%9a%84%e4%b9%90%e8%b6%a3%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e7%8e%a9%e4%b8%80%e4%b8%8bminishift%e5%90%a7%ef%bc%81%e8%bd%bb%e6%9d%be%e4%bd%93%e9%aa%8ckubernetes%e7%9a%84%e4%b9%90%e8%b6%a3%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e7%8e%a9%e4%b8%80%e4%b8%8bminishift%e5%90%a7%ef%bc%81%e8%bd%bb%e6%9d%be%e4%bd%93%e9%aa%8ckubernetes%e7%9a%84%e4%b9%90%e8%b6%a3%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u8ba9\u6211\u4eec\u6765\u73a9\u4e00\u4e0bMinishift\u5427\uff01\u8f7b\u677e\u4f53\u9a8cKubernetes\u7684\u4e50\u8da3"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/64d5cc7727fffbff2f9a2a8da1de3e5c","name":"\u6587, \u7fd4","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/920c3d673e0bccacc98e5e6b7149bb3c22edd8d39cb753e5d7d7e471498118a1?s=96&d=mm&r=g","caption":"\u6587, \u7fd4"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/wenxiang\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e8%ae%a9%e6%88%91%e4%bb%ac%e6%9d%a5%e7%8e%a9%e4%b8%80%e4%b8%8bminishift%e5%90%a7%ef%bc%81%e8%bd%bb%e6%9d%be%e4%bd%93%e9%aa%8ckubernetes%e7%9a%84%e4%b9%90%e8%b6%a3%e3%80%82\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/32084","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/6"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=32084"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/32084\/revisions"}],"predecessor-version":[{"id":90430,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/32084\/revisions\/90430"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=32084"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=32084"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=32084"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}