如何在kubernetes中創建Pod
如何創建Pod?
在之前的文章中,我們介紹瞭容器和Pod的區別和關系。我們知道Pod是k8s調度的最小單位,而一個Pod中可以有多個容器,那麼我們如何來定義一個我們自己的Pod呢?
在k8s中,我們通常使用編寫配置文件的方式創建一個Pod,配置文件的格式通常采用yaml格式,(yaml格式如何表示list、key-value鍵值對,這些知識在前一篇文章中說過瞭),編寫好yaml文件之後,通過下面的辦法來啟動一個Pod:
kubectl create -f 配置文件
Pod中容器的定義、參數、配置等信息,都在yaml文件中,一個常見的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: {}
當然,它可能有很多字段,根據你創建的Pod不同,字段可以自己設置。這樣一個yaml文件,當我們提交給k8s之後,k8s就會幫助我們創建出來對應的API對象,在這個例子中,我們的對象是一個Pod,(因為yaml文件中的kind字段後面的值是Pod)。當然,還有其他。
到這裡,我們已經瞭解瞭Pod的創建方法,針對上面的過程,我們再來看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:可選參數,可以通過--help來查看 eg: kubectl create – 通過文件名或控制臺輸入,創建資源。 kubectl delete – 通過文件名、控制臺輸入、資源名或者label selector刪除資源。 kubectl annotate – 更新資源的註解。 kubectl api-versions – 以“組/版本”的格式輸出服務端支持的API版本。 kubectl apply – 通過文件名或控制臺輸入,對資源進行配置。 kubectl attach – 連接到一個正在運行的容器。 kubectl autoscale – 對replication controller進行自動伸縮。 kubectl cluster-info – 輸出集群信息。 kubectl config – 修改kubeconfig配置文件。 kubectl describe – 輸出指定的一個/多個資源的詳細信息。 kubectl edit – 編輯服務端的資源。 kubectl exec – 在容器內部執行命令。 kubectl expose – 輸入replication controller,service或者pod,並將其暴露為新的kubernetes service。 kubectl get – 輸出一個/多個資源。 kubectl label – 更新資源的label。 kubectl logs – 輸出pod中一個容器的日志。 kubectl namespace -(已停用)設置或查看當前使用的namespace。 kubectl patch – 通過控制臺輸入更新資源中的字段。 kubectl port-forward – 將本地端口轉發到Pod。 kubectl proxy – 為Kubernetes API server啟動代理服務器。 kubectl replace – 通過文件名或控制臺輸入替換資源。 kubectl rolling-update – 對指定的replication controller執行滾動升級。 kubectl run – 在集群中使用指定鏡像啟動容器。 kubectl scale – 為replication controller設置新的副本數。 kubectl stop – (已停用)通過資源名或控制臺輸入安全刪除資源。 kubectl version – 輸出服務端和客戶端的版本信息。
現在我們知道,它是一個命令行工具,常見的操作有上面這麼多,可以使用create子命令來創建一個Pod即可。
後續的其他功能,每次用到的時候,我們再展開說。當然,你可以使用kubectl –help來查看它的說明。
以上就是如何在kubernetes中創建Pod的詳細內容,更多關於kubernetes中創建Pod的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- None Found