如何在kubernetes中創(chuàng)建Pod
如何創(chuàng)建Pod?
在之前的文章中,我們介紹了容器和Pod的區(qū)別和關(guān)系。我們知道Pod是k8s調(diào)度的最小單位,而一個(gè)Pod中可以有多個(gè)容器,那么我們?nèi)绾蝸矶x一個(gè)我們自己的Pod呢?
在k8s中,我們通常使用編寫配置文件的方式創(chuàng)建一個(gè)Pod,配置文件的格式通常采用yaml格式,(yaml格式如何表示list、key-value鍵值對(duì),這些知識(shí)在前一篇文章中說過了),編寫好yaml文件之后,通過下面的辦法來啟動(dòng)一個(gè)Pod:
kubectl create -f 配置文件
Pod中容器的定義、參數(shù)、配置等信息,都在yaml文件中,一個(gè)常見的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è)置。這樣一個(gè)yaml文件,當(dāng)我們提交給k8s之后,k8s就會(huì)幫助我們創(chuàng)建出來對(duì)應(yīng)的API對(duì)象,在這個(gè)例子中,我們的對(duì)象是一個(gè)Pod,(因?yàn)閥aml文件中的kind字段后面的值是Pod)。當(dāng)然,還有其他。
到這里,我們已經(jīng)了解了Pod的創(chuàng)建方法,針對(duì)上面的過程,我們?cè)賮砜?個(gè)問題:
第一、kubectl是什么?它可以跟什么命令?
第二、Pod的yaml文件中的字段分別是什么意思?
先來看第一個(gè)問題。
kubectl工具
kubectl工具是一個(gè)客戶端CLI工具,可以讓用戶通過命令行的方式來管理k8s集群,這個(gè)命令的基本語法是:
kubectl 【command】 【type】 【name】 【flags】 command取值:get、create、delete、describe、get、apply等 type取值,資源對(duì)象的類型,可以取pod、deployment等 name取值:資源對(duì)象的名稱, flags:可選參數(shù),可以通過--help來查看 eg: kubectl create – 通過文件名或控制臺(tái)輸入,創(chuàng)建資源。 kubectl delete – 通過文件名、控制臺(tái)輸入、資源名或者label selector刪除資源。 kubectl annotate – 更新資源的注解。 kubectl api-versions – 以“組/版本”的格式輸出服務(wù)端支持的API版本。 kubectl apply – 通過文件名或控制臺(tái)輸入,對(duì)資源進(jìn)行配置。 kubectl attach – 連接到一個(gè)正在運(yùn)行的容器。 kubectl autoscale – 對(duì)replication controller進(jìn)行自動(dòng)伸縮。 kubectl cluster-info – 輸出集群信息。 kubectl config – 修改kubeconfig配置文件。 kubectl describe – 輸出指定的一個(gè)/多個(gè)資源的詳細(xì)信息。 kubectl edit – 編輯服務(wù)端的資源。 kubectl exec – 在容器內(nèi)部執(zhí)行命令。 kubectl expose – 輸入replication controller,service或者pod,并將其暴露為新的kubernetes service。 kubectl get – 輸出一個(gè)/多個(gè)資源。 kubectl label – 更新資源的label。 kubectl logs – 輸出pod中一個(gè)容器的日志。 kubectl namespace -(已停用)設(shè)置或查看當(dāng)前使用的namespace。 kubectl patch – 通過控制臺(tái)輸入更新資源中的字段。 kubectl port-forward – 將本地端口轉(zhuǎn)發(fā)到Pod。 kubectl proxy – 為Kubernetes API server啟動(dòng)代理服務(wù)器。 kubectl replace – 通過文件名或控制臺(tái)輸入替換資源。 kubectl rolling-update – 對(duì)指定的replication controller執(zhí)行滾動(dòng)升級(jí)。 kubectl run – 在集群中使用指定鏡像啟動(dòng)容器。 kubectl scale – 為replication controller設(shè)置新的副本數(shù)。 kubectl stop – (已停用)通過資源名或控制臺(tái)輸入安全刪除資源。 kubectl version – 輸出服務(wù)端和客戶端的版本信息。
現(xiàn)在我們知道,它是一個(gè)命令行工具,常見的操作有上面這么多,可以使用create子命令來創(chuàng)建一個(gè)Pod即可。
后續(xù)的其他功能,每次用到的時(shí)候,我們?cè)僬归_說。當(dāng)然,你可以使用kubectl --help來查看它的說明。
以上就是如何在kubernetes中創(chuàng)建Pod的詳細(xì)內(nèi)容,更多關(guān)于kubernetes中創(chuàng)建Pod的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Kubernetes中創(chuàng)建命名空間實(shí)現(xiàn)方法
這篇文章主要為大家介紹了Kubernetes中創(chuàng)建命名空間實(shí)現(xiàn)方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11Rainbond部署組件Statefulset的使用官方文檔
這篇文章主要為大家介紹了官方文檔Rainbond部署組件Statefulset的使用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-04-04阿里云kubernetes查找鏡像中jar包的方法(docker查看鏡像中的jar)
這篇文章主要給大家介紹了關(guān)于阿里云kubernetes查找鏡像中jar包的方法,也就是在docker查看鏡像中的jar,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09帶你學(xué)會(huì)k8s?更高級(jí)的對(duì)象Deployment
這篇文章主要為大家介紹了k8s還有更高級(jí)的"對(duì)象"Deployment使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04k8s Job 執(zhí)行一次性以及批處理任務(wù)使用場(chǎng)景案例
這篇文章主要為大家介紹了k8s Job 執(zhí)行一次性以及批處理任務(wù)使用場(chǎng)景案例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04k8s?Ingress實(shí)現(xiàn)流量路由規(guī)則控制的定義格式類型
這篇文章主要為大家介紹了k8s?Ingress?實(shí)現(xiàn)流量路由規(guī)則控制的定義格式及類型詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04K8S-ConfigMap實(shí)現(xiàn)應(yīng)用和配置分離詳解
這篇文章主要為大家介紹了K8S-ConfigMap實(shí)現(xiàn)應(yīng)用和配置分離詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04Kubernetes應(yīng)用服務(wù)質(zhì)量管理詳解
這篇文章主要為大家介紹了Kubernetes應(yīng)用服務(wù)質(zhì)量管理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11