<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          搭建免費(fèi)的 K8s 集群,10 秒部署應(yīng)用

          共 4794字,需瀏覽 10分鐘

           ·

          2022-04-17 01:25


          自 2014 年第一個(gè)版本發(fā)布以來(lái),K8s 在開(kāi)源社區(qū)迅速走紅,包括 Red Hat、VMware、Canonical 在內(nèi)的許多有影響力的公司都加入了開(kāi)發(fā)和推廣陣營(yíng)。目前,K8s 已經(jīng)成為增長(zhǎng)最快、市場(chǎng)份額最高的容器編排引擎產(chǎn)品。

          但是,知識(shí)門(mén)檻越高,越需要搭建一個(gè)最小可用的 K8s 系統(tǒng)。如果直接學(xué)習(xí)理論知識(shí)和概念,很容易剛開(kāi)始就放棄。

          今天給大家介紹如何通過(guò)網(wǎng)頁(yè)瀏覽器創(chuàng)建預(yù)部署的 K8s 集群,免費(fèi)快速體驗(yàn) K8s 的功能和應(yīng)用場(chǎng)景,無(wú)需深入了解即可開(kāi)始體驗(yàn)。

          Kubernetes.io

          如果還不知道,K8s 官網(wǎng)為大家準(zhǔn)備了現(xiàn)成的最低可用系統(tǒng)。只需訪問(wèn) https://kubernetes.io/docs/tutorials/kubernetes-basics/,您即可看到以下內(nèi)容:

          本教程將指導(dǎo)您完成創(chuàng)建 K8s 集群、部署應(yīng)用、訪問(wèn)應(yīng)用、擴(kuò)展應(yīng)用、更新應(yīng)用等最常見(jiàn)的使用場(chǎng)景,快速建立起從感覺(jué)上對(duì)它的認(rèn)識(shí)。

          創(chuàng)建 K8s 集群

          點(diǎn)擊教程菜單 1. Create a Cluster->Interactive Tutorial - Creating a Cluster

          它將為環(huán)境做好準(zhǔn)備:

          環(huán)境準(zhǔn)備好后,您將看到 “Kubernetes Bootcamp Terminal” 的字樣。

          現(xiàn)在檢查版本,并啟動(dòng)你的 minikube

          準(zhǔn)備就緒后,運(yùn)行以下命令進(jìn)行驗(yàn)證:

          $?kubectl?get?svc?
          NAME?TYPE?CLUSTER-IP?EXTERNAL-IP?PORT(S)?AGE?
          kubernetes?ClusterIP?10.96.0.1??443/TCP?22s?
          $?kubectl?get?node?
          NAME?STATUS?ROLES?AGE?VERSION?
          minikube?Ready?control-plane,master?27s?v1.20.2

          現(xiàn)在您只需幾秒鐘就擁有一個(gè) minikube K8s 集群!您可通過(guò)以下方式查看集群信息:

          $?kubectl?cluster-info
          Kubernetes?control?plane?is?running?at?https://172.17.0.32:8443
          KubeDNS?is?running?at?https://172.17.0.32:8443/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
          To?further?debug?and?diagnose?cluster?problems,?use?'kubectl?cluster-info?dump'.

          部署應(yīng)用程序

          現(xiàn)在我們有了集群,讓我們部署一個(gè)應(yīng)用程序示例:

          $?kubectl?create?deployment?kubernetes-bootcamp?--image=gcr.io/google-samples/kubernetes-bootcamp:v1
          deployment.apps/kubernetes-bootcamp?created

          這里 deployment 是 K8s 的術(shù)語(yǔ),可以理解為應(yīng)用(部署)。在上面的示例中,我們使用的是容器鏡像(Docker Image) gcr.io/google-samples/kubernetes-bootcamp:v1

          在 K8s 中,還有一個(gè)重要的名詞 PodPod 是容器的集合,通常將一組密切相關(guān)的容器放入一個(gè) Pod 中。同一個(gè) Pod 中的所有容器共享 IP 地址和端口,即它們?cè)谕粋€(gè)網(wǎng)絡(luò)命名空間中。PodKubernetes 調(diào)度的最小單位,并且同一個(gè) Pod 中的容器總是一起調(diào)度的。

          讓我們查看一下與我們的部署關(guān)聯(lián)的 pod

          $?kubectl?get?pods?
          NAME?READY?STATUS?RESTARTS?AGE?
          kubernetes-bootcamp-57978f5f5d-rfpww?1/1?Running?0?2m10s

          kubectl proxy

          在 K8s 中運(yùn)行的 Pod 同時(shí)也運(yùn)行在一個(gè)私有的、隔離的網(wǎng)絡(luò)上。默認(rèn)情況下,它們?cè)谕粋€(gè) K8s 集群中的其他 pod 和服務(wù)中是可見(jiàn)的,但在該網(wǎng)絡(luò)之外不可見(jiàn)。為了訪問(wèn)我們的應(yīng)用程序,我們需要使用 kubectl proxy 命令。此命令創(chuàng)建一個(gè)代理,它將通信轉(zhuǎn)發(fā)到集群范圍內(nèi)的私有網(wǎng)絡(luò)中。代理可以通過(guò)按 control-C 來(lái)終止,并且在其運(yùn)行時(shí)不會(huì)顯示任何輸出。

          $?kubectl?proxy
          Starting?to?serve?on?127.0.0.1:8001

          現(xiàn)在打開(kāi)一個(gè)新終端,您應(yīng)該可以訪問(wèn)應(yīng)用程序端點(diǎn):

          $?curl?http://localhost:8001/version
          {
          ??"major":?"1",
          ??"minor":?"20",
          ??"gitVersion":?"v1.20.2",
          ??"gitCommit":?"faecb196815e248d3ecfb03c680a4507229c2a56",
          ??"gitTreeState":?"clean",
          ??"buildDate":?"2021-01-13T13:20:00Z",
          ??"goVersion":?"go1.15.5",
          ??"compiler":?"gc",
          ??"platform":?"linux/amd64"
          }

          規(guī)模應(yīng)用

          默認(rèn)情況下,應(yīng)用程序只會(huì)運(yùn)行一個(gè)副本,您可以使用 kubectl get deployments 來(lái)檢查副本的數(shù)量。

          $?kubectl?create?deployment?kubernetes-bootcamp?--image=gcr.io/google-samples/kubernetes-bootcamp:v1

          執(zhí)行以下命令將副本數(shù)增加到 3:

          $?kubectl?scale?deployment/kubernetes-bootcamp?--replicas=3
          deployment.apps/kubernetes-bootcamp?scaled
          $?kubectl?get?deployment
          NAME??????????????????READY???UP-TO-DATE???AVAILABLE???AGE
          kubernetes-bootcamp???3/3?????3????????????3???????????105s

          您還可以使用 kubectl get pods 看到當(dāng)前的 Pod 也增加到了 3 個(gè)

          $?kubectl?get?pods
          NAME??????????????????????????????????READY???STATUS????RESTARTS???AGE
          kubernetes-bootcamp-fb5c67579-kc6xc???1/1?????Running???0??????????29s
          kubernetes-bootcamp-fb5c67579-p2vnv???1/1?????Running???0??????????29s
          kubernetes-bootcamp-fb5c67579-w7jw9???1/1?????Running???0??????????118s

          將規(guī)模減小也很方便,執(zhí)行以下命令即可:

          $?kubectl?scale?deployments/kubernetes-bootcamp?--replicas=2

          滾動(dòng)更新

          當(dāng)前應(yīng)用使用的鏡像版本是 v1。運(yùn)行以下命令將其升級(jí)到 v2:

          $?kubectl?set?image?deployments/kubernetes-bootcamp?kubernetes-bootcamp=jocatalin/kubernetes-bootcamp:v2
          deployment.apps/kubernetes-bootcamp?image?updated
          $?kubectl?get?pods
          NAME???????????????????????????????????READY???STATUS??????????????RESTARTS???AGE
          kubernetes-bootcamp-57978f5f5d-8g944???1/1?????Running?????????????0??????????30s
          kubernetes-bootcamp-57978f5f5d-rccwb???1/1?????Terminating?????????0??????????13s
          kubernetes-bootcamp-57978f5f5d-t5v84???1/1?????Running?????????????0??????????13s
          kubernetes-bootcamp-769746fd4-6fxgl????1/1?????Running?????????????0??????????2s
          kubernetes-bootcamp-769746fd4-h8784????0/1?????ContainerCreating???0??????????0s

          可以觀察到滾動(dòng)更新的 kubectl get pods 過(guò)程:v1 版 Pod 被逐個(gè)刪除,同時(shí)新的 v2 版 Pod 被啟動(dòng)。更新完成后即可訪問(wèn)新版本的應(yīng)用程序。

          如果要回滾到 v1 版本,可執(zhí)行 kubectl rollout undo 命令,也很簡(jiǎn)單:

          $?kubectl?rollout?undo?deployments/kubernetes-bootcamp
          deployment.apps/kubernetes-bootcamp?rolled?back
          $?kubectl?get?pods
          NAME???????????????????????????????????READY???STATUS??????????????RESTARTS???AGE
          kubernetes-bootcamp-57978f5f5d-5xpzm???0/1?????ContainerCreating???0??????????1s
          kubernetes-bootcamp-57978f5f5d-5zgvj???1/1?????Running?????????????0??????????3s
          kubernetes-bootcamp-57978f5f5d-qml9r???1/1?????Running?????????????0??????????4s
          kubernetes-bootcamp-769746fd4-6fxgl????1/1?????Running?????????????0??????????2m15s
          kubernetes-bootcamp-769746fd4-9mzbs????1/1?????Terminating?????????0??????????2m11s
          kubernetes-bootcamp-769746fd4-h8784????1/1?????Terminating?????????0??????????2m13s

          至此,我們通過(guò)官網(wǎng)的互動(dòng)教程快速體驗(yàn)了 K8s 的功能和用法。如果您是 K8s 新手,這應(yīng)該可以讓您無(wú)需先花費(fèi)時(shí)間和金錢(qián)來(lái)創(chuàng)建 K8s 集群就能體驗(yàn)到 K8s 的工作原理。

          鏈接:https://blog.devgenius.io/k8s-build-free-k8s-cluster-and-deploy-application-in-10-seconds-d013ae5e5a92

          (版權(quán)歸原作者所有,侵刪)


          瀏覽 197
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  免费看人人摸 | 人人爽人人澡 | 婷婷导航| 国产乱╳╳aⅴ毛片 | 午夜福利天天射天天操 |