『中級篇』K8S最小調度單位Pod(62)
>原創文章,歡迎轉載。轉載請註明:轉載自IT人故事會,謝謝!
>原文鏈接地址:『中級篇』K8S最小調度單位Pod(62)
k8s裏面非常重要的一個概念pod,首先簡單的介紹是pod是k8s最小的調度單位,一個pod裏面可以包含一個或者多個container,一個pod共享一個namespace,它們之前可以通過localhost來進行通信。源碼:https://github.com/limingios/docker/tree/master/No.9
演示pod
- 下載源碼
https://github.com/limingios/docker/tree/master/No.9
- pod_nginx.yml 演示
k8s api裏面的格式
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx
ports:
- containerPort: 80
- 開始運行pod節點
確認k8s通過minikube單節點沒有問題
kubectl version #創建pod kubectl create -f pod_nginx.yml #查看pod狀態 kubectl get pods #查看pod狀態ip狀態 kubectl get pods -o wide
進入minikube 查看docker ps,內部其實就是docker
minikube start docker ps docker exec -it nginxId exit
查看pod nginx的網絡
docker network ls
#查看到nginx的ip是172.17.0.4
docker network inspect bridge
exit
kubectl get pods -o wide
上邊這種是不是感覺很麻煩,如果想進入容器,還需要想進入虛擬機然後docker ps 找到id,最後docker exec的方式。其實不用那麽復雜。
#進入nginx的容器 kubectl exec -it nginx sh #了解下進入容器的所有的命令 kubectl exec -it -h
# nginx這個pods的所有詳細信息
kubectl describe pods nginx
通過ip的方式,看看nginx啟動起來沒?
minikube ssh
ping 172.17.0.4
curl 172.17.0.4
老鐵 現在你最想的是什麽?我最想的是:在本機可以訪問到nginx的服務,而不是在內部。在原來學docker的時候可以進行-p 端口映射的方式。在k8s的kubectl 同樣可以看命令。
kubectl port-forward nginx 8080:80
PS:最後把容器內的nginx暴露出來了可以在外部訪問了,是不是覺得美滋滋,這次主要講了如果pod的方式創建容器,由k8s進行管理,獲取到nginx的ip地址,映射容器內的端口,其實我感覺有點類似docker-swarm,但是這個好像比docker-swarm靈活點。也留個小問題,現在是用的port-forward它得一直開著,如果關閉了,直接就訪問不了了,這種該如何解決。下次我來說!
『中級篇』K8S最小調度單位Pod(62)