,我們介紹了容器和Pod的區別和關(guān)系。我們知道Pod是k8s調度的最小單位,而一個(gè)Pod中可以有多個(gè)容器,那么我們如何來(lái)定義一個(gè)我們自己的Pod呢?
在k8s中,我們通常使用編寫(xiě)配置文件的方式創(chuàng )建一個(gè)Pod,配置文件的格式通常采用yaml格式,(yaml格式如何表示list、key-value鍵值對,這些知識在前一篇文章中說(shuō)過(guò)了),編寫(xiě)好yaml文件之后,通過(guò)下面的辦法來(lái)啟動(dòng)一個(gè)Pod:
kubectl create -f 配置文件
Pod中容器的定義、參數、配置等信息,都在yaml文件中,一個(gè)常見(jiàn)的yaml文件內容如下:
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: {}
當然,它可能有很多字段,根據你創(chuàng )建的Pod不同,字段可以自己設置。這樣一個(gè)yaml文件,當我們提交給k8s之后,k8s就會(huì )幫助我們創(chuàng )建出來(lái)對應的API對象,在這個(gè)例子中,我們的對象是一個(gè)Pod,(因為yaml文件中的kind字段后面的值是Pod)。當然,還有其他。
到這里,我們已經(jīng)了解了Pod的創(chuàng )建方法,針對上面的過(guò)程,我們再來(lái)看2個(gè)問(wèn)題:
第一、kubectl是什么?它可以跟什么命令?
第二、Pod的yaml文件中的字段分別是什么意思?
先來(lái)看第一個(gè)問(wèn)題。
kubectl工具是一個(gè)客戶(hù)端CLI工具,可以讓用戶(hù)通過(guò)命令行的方式來(lái)管理k8s集群,這個(gè)命令的基本語(yǔ)法是:
kubectl 【command】 【type】 【name】 【flags】 command取值:get、create、delete、describe、get、apply等 type取值,資源對象的類(lèi)型,可以取pod、deployment等 name取值:資源對象的名稱(chēng), flags:可選參數,可以通過(guò)--help來(lái)查看 eg: kubectl create – 通過(guò)文件名或控制臺輸入,創(chuàng )建資源。 kubectl delete – 通過(guò)文件名、控制臺輸入、資源名或者label selector刪除資源。 kubectl annotate – 更新資源的注解。 kubectl api-versions – 以“組/版本”的格式輸出服務(wù)端支持的API版本。 kubectl apply – 通過(guò)文件名或控制臺輸入,對資源進(jìn)行配置。 kubectl attach – 連接到一個(gè)正在運行的容器。 kubectl autoscale – 對replication controller進(jìn)行自動(dòng)伸縮。 kubectl cluster-info – 輸出集群信息。 kubectl config – 修改kubeconfig配置文件。 kubectl describe – 輸出指定的一個(gè)/多個(gè)資源的詳細信息。 kubectl edit – 編輯服務(wù)端的資源。 kubectl exec – 在容器內部執行命令。 kubectl expose – 輸入replication controller,service或者pod,并將其暴露為新的kubernetes service。 kubectl get – 輸出一個(gè)/多個(gè)資源。 kubectl label – 更新資源的label。 kubectl logs – 輸出pod中一個(gè)容器的日志。 kubectl namespace -(已停用)設置或查看當前使用的namespace。 kubectl patch – 通過(guò)控制臺輸入更新資源中的字段。 kubectl port-forward – 將本地端口轉發(fā)到Pod。 kubectl proxy – 為Kubernetes API server啟動(dòng)代理服務(wù)器。 kubectl replace – 通過(guò)文件名或控制臺輸入替換資源。 kubectl rolling-update – 對指定的replication controller執行滾動(dòng)升級。 kubectl run – 在集群中使用指定鏡像啟動(dòng)容器。 kubectl scale – 為replication controller設置新的副本數。 kubectl stop – (已停用)通過(guò)資源名或控制臺輸入安全刪除資源。 kubectl version – 輸出服務(wù)端和客戶(hù)端的版本信息。
現在我們知道,它是一個(gè)命令行工具,常見(jiàn)的操作有上面這么多,可以使用create子命令來(lái)創(chuàng )建一個(gè)Pod即可。
后續的其他功能,每次用到的時(shí)候,我們再展開(kāi)說(shuō)。當然,你可以使用kubectl --help來(lái)查看它的說(shuō)明。
以上就是如何在kubernetes中創(chuàng )建Pod的詳細內容,更多關(guān)于kubernetes中創(chuàng )建Pod的資料請關(guān)注腳本之家其它相關(guān)文章!
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。
Copyright ? 2009-2022 56dr.com. All Rights Reserved. 特網(wǎng)科技 特網(wǎng)云 版權所有 特網(wǎng)科技 粵ICP備16109289號
域名注冊服務(wù)機構:阿里云計算有限公司(萬(wàn)網(wǎng)) 域名服務(wù)機構:煙臺帝思普網(wǎng)絡(luò )科技有限公司(DNSPod) CDN服務(wù):阿里云計算有限公司 百度云 中國互聯(lián)網(wǎng)舉報中心 增值電信業(yè)務(wù)經(jīng)營(yíng)許可證B2
建議您使用Chrome、Firefox、Edge、IE10及以上版本和360等主流瀏覽器瀏覽本網(wǎng)站