k8s入門之pod(四)


pod是k8s項目中的最小編排單位,它是運行中的一組(一個或多個)容器,這些容器共享存儲、網絡、調度等資源,pod是一個邏輯概念,同一個名稱空間下不同pod可以通過ip互相訪問。

一、通過命令行方式管理

1.創建

在dev名稱空間下創建名稱為mynginx的pod,如果不指定-n參數,則默認創建在default名稱空間下

kubectl run mynginx --image=nginx -n dev

2.查看dev名稱空間下所有pod的簡單信息

kubectl get pod -n dev

創建pod需要時間,尤其是節點上沒有該鏡像時,還需要下載鏡像,可以看到pod的Status狀態會隨着時間而改變,最后變成Running表示pod啟動成功

3.查看dev名稱空間下所有pod的詳細信息

kubectl get pod -n dev -owide --show-labels

結果截圖如下

NODE:表示該pod被調度了哪個worker節點上

IP:k8s會為每個pod分配一個ip,集群中的任意一個機器以及任意的應用都能通過此ip來訪問這個Pod

在master節點上可以通過curl ip訪問pod

# 默認是80端口,所以訪問的是pod中的nginx容器
curl 10.244.218.1

4.根據標簽檢索pod

kubectl get pod -n dev -owide --show-labels -l app=nginx

5.查看pod的描述信息

kubectl describe pod mynginx -n dev

其中Events事件可以查看到pod被創建的詳細過程

6.查看Pod的運行日志

kubectl logs mynginx -n dev

7.進入pod容器

kubectl exec -it mynginx /bin/bash -n dev

更改nginx容器的index.html內容

echo "hello,pod" >> /usr/share/nginx/html/index.html

再次訪問mynginx

curl 10.244.218.1

可以看到index.html首頁內容已經發生了變化

8.監控pod狀態命令

使用k8s的-w參數

kubect get pod -n dev -w

使用linux命令

watch -n 1 kubectl get pod -n dev

9.刪除pod

kubectl delete pod mynginx -n dev

二、使用yaml管理

1.在pod里部署兩個容器

一個pod里面不能部署相同鏡像的容器,端口沖突

(1)創建yaml文件

vi pod-nginx-tomcat.yaml

(2)編寫pod文件內容,定義兩個容器,一個為nginx,一個為tomcat

apiVersion: v1
kind: Pod
metadata:
  labels:
    web: server
  name: web-server
  namespace: dev
spec:
  containers:
  - image: nginx
    name: nginx
  - image: tomcat:9.0

(3)使用kubectl apply創建pod

kubectl apply -f pod-nginx-tomcat.yaml

(4)自動監控創建過程

kubectl get pod -n dev -w

2.查看pod描述

kubectl describe pod web-server -n dev

3.在節點上訪問pod

(1)查看pod的ip

kubectl get pod -n dev -owide

(2)通過此ip訪問pod中的nginx容器

curl 10.244.218.2

(3)通過此ip訪問pod中的tomcat容器

curl 10.244.218.2:8080

4.進入pod里面訪問服務

(1)進入pod里面的nginx容器

kubectl exec web-server --container nginx -it /bin/bash -n dev

(2)在容器內,以下命令均可訪問,證明了pod里網絡共享

curl localhost
curl localhost:8080
curl 10.244.218.2
curl 10.244.218.2:8080


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM