如何在kubernetes中創(chuàng)建Pod
如何創(chuàng)建Pod?
在之前的文章中,我們介紹了容器和Pod的區(qū)別和關(guān)系。我們知道Pod是k8s調(diào)度的最小單位,而一個Pod中可以有多個容器,那么我們?nèi)绾蝸矶x一個我們自己的Pod呢?
在k8s中,我們通常使用編寫配置文件的方式創(chuàng)建一個Pod,配置文件的格式通常采用yaml格式,(yaml格式如何表示list、key-value鍵值對,這些知識在前一篇文章中說過了),編寫好yaml文件之后,通過下面的辦法來啟動一個Pod:
kubectlcreate-f配置文件
Pod中容器的定義、參數(shù)、配置等信息,都在yaml文件中,一個常見的yaml文件內(nèi)容如下:
apiVersion:v1 kind:Pod metadata: name:volume-pod spec: containers: -name:tomcat image:tomcat ports: -containerPort:8080 volumeMounts: -name:app-logs mountPath:/usr/local/tomcat/logs -name:busybox image:busybox command:["sh","-c","tail-f/logs/catalina*.log"] volumeMounts: -name:app-logs mountPath:/logs volumes: -name:app-logs emptyDir:{}
當(dāng)然,它可能有很多字段,根據(jù)你創(chuàng)建的Pod不同,字段可以自己設(shè)置。這樣一個yaml文件,當(dāng)我們提交給k8s之后,k8s就會幫助我們創(chuàng)建出來對應(yīng)的API對象,在這個例子中,我們的對象是一個Pod,(因?yàn)閥aml文件中的kind字段后面的值是Pod)。當(dāng)然,還有其他。
到這里,我們已經(jīng)了解了Pod的創(chuàng)建方法,針對上面的過程,我們再來看2個問題:
第一、kubectl是什么?它可以跟什么命令?
第二、Pod的yaml文件中的字段分別是什么意思?
先來看第一個問題。
kubectl工具
kubectl工具是一個客戶端CLI工具,可以讓用戶通過命令行的方式來管理k8s集群,這個命令的基本語法是:
kubectl【command】【type】【name】【flags】 command取值:get、create、delete、describe、get、apply等 type取值,資源對象的類型,可以取pod、deployment等 name取值:資源對象的名稱, flags:可選參數(shù),可以通過--help來查看 eg: kubectlcreate–通過文件名或控制臺輸入,創(chuàng)建資源。 kubectldelete–通過文件名、控制臺輸入、資源名或者label selector刪除資源。 kubectl annotate –更新資源的注解。 kubectlapi-versions–以“組/版本”的格式輸出服務(wù)端支持的API版本。 kubectlapply–通過文件名或控制臺輸入,對資源進(jìn)行配置。 kubectl attach –連接到一個正在運(yùn)行的容器。 kubectlautoscale–對replicationcontroller進(jìn)行自動伸縮。 kubectl cluster-info –輸出集群信息。 kubectl config –修改kubeconfig配置文件。 kubectldescribe–輸出指定的一個/多個資源的詳細(xì)信息。 kubectl edit –編輯服務(wù)端的資源。 kubectl exec –在容器內(nèi)部執(zhí)行命令。 kubectlexpose–輸入replicationcontroller,service或者pod,并將其暴露為新的kubernetes service。 kubectlget–輸出一個/多個資源。 kubectl label –更新資源的label。 kubectllogs–輸出pod中一個容器的日志。 kubectl namespace -(已停用)設(shè)置或查看當(dāng)前使用的namespace。 kubectlpatch–通過控制臺輸入更新資源中的字段。 kubectl port-forward –將本地端口轉(zhuǎn)發(fā)到Pod。 kubectlproxy–為KubernetesAPIserver啟動代理服務(wù)器。 kubectlreplace–通過文件名或控制臺輸入替換資源。 kubectlrolling-update–對指定的replicationcontroller執(zhí)行滾動升級。 kubectl run –在集群中使用指定鏡像啟動容器。 kubectlscale–為replicationcontroller設(shè)置新的副本數(shù)。 kubectlstop–(已停用)通過資源名或控制臺輸入安全刪除資源。 kubectlversion–輸出服務(wù)端和客戶端的版本信息。
現(xiàn)在我們知道,它是一個命令行工具,常見的操作有上面這么多,可以使用create子命令來創(chuàng)建一個Pod即可。
后續(xù)的其他功能,每次用到的時候,我們再展開說。當(dāng)然,你可以使用kubectl --help來查看它的說明。
以上就是如何在kubernetes中創(chuàng)建Pod的詳細(xì)內(nèi)容,更多關(guān)于kubernetes中創(chuàng)建Pod的資料請關(guān)注本站其它相關(guān)文章!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。