k8s簡單介紹


k8s是什么?

它是用來解決容器部署,調度,伸縮等基礎的功能的軟件

k8s的優點?

  • 易學:輕量級,簡單,容易理解
  • 便攜:支持公有雲,私有雲,混合雲,以及多種雲平台
  • 可拓展:模塊化,可插拔,支持鈎子,可任意組合
  • 自修復:自動重調度,自動重啟,自動復制

docker中部署k8s架構

 

 

基本概念

 

 

  • 節點( Node ):一個節點是一個運行 Kubernetes 中的主機。
  • 容器組( Pod ):一個 Pod 對應於由若干容器組成的一個容器組,同個組內的容器共享一個存儲卷(volume)。
  • 容器組生命周期( pos-states ):包含所有容器狀態集合,包括容器組狀態類型,容器組生命周期,事件,重啟策略,以及 replication controllers。
  • Replication Controllers:主要負責指定數量的 pod 在同一時間一起運行。
  • 服務( services ):一個 Kubernetes 服務是容器組邏輯的高級抽象,同時也對外提供訪問容器組的策略。
  • 卷( volumes ):一個卷就是一個目錄,容器對其有訪問權限。
  • 標簽( labels ):標簽是用來連接一組對象的,比如容器組。標簽可以被用來組織和選擇子對象。
  • 接口權限( accessing_the_api ):端口,IP 地址和代理的防火牆規則。
  • web 界面( ux ):用戶可以通過 web 界面操作 Kubernetes。
  • 命令行操作( cli ): kubecfg 命令

 ##我們先把k8s跑起來在說,部署參考:https://www.cnblogs.com/python-cat/p/10831419.html

 =============================================================================

 部署一個應用

kubectl run nginx \
--image=ghd493630393/nginx:v1 \
--port=80

這里我們通過kubectl run部署了一個應用,命名為kubernetes-bootcamp ,如圖1-6 所示。

Docker 鏡像通過-- image 指定。

一port 設置應用對外服務的端口。

kubectl run --generator=deployment/apps.v1 is DEPRECATED and will be removed in a future version. Use kubectl run --generator=run-pod/v1 or kubectl create instead.
deployment.apps/kubernetes-bootcamp created

這里Deployment 是Kubernetes 的術語,可以理解為應用。Kubermetes 還有一個重要術語Pod 。Pod 是容器的集合,通常會將緊密相關的一組容器放到一個Pod 中,同個Pod 中的所有容器共享IP 地址和Port 空間,也就

是說它們在個network namespace 中Pod 是Kubermetes 調度的最小單位,同- Pod 中的容器始終被起調度。通過 kubectl get pods來查看pod信息

[root@k8s-master opt]# kubectl get pods
NAME READY STATUS RESTARTS AGE
nginx-77d48d9dc5-kghmh 1/1 Running 0 20h
nginx-test-n828d 1/1 Running 0 5d18h
nginx-test-pmtfm 1/1 Running 0 5d18h

訪問應用

 

 

默認情況下,所有Pod 只能在集群內部訪問。對於上面這個例子,要訪問應用只能直接訪問容器的8080 端口。為了能夠從外部訪問應用,我們需要將容器的8080 端口映射到節點的端口。

 

#將nginx暴露到外網
[root@k8s-master ~]# kubectl expose nginx \ > --type="NodePort" \ > --port 80

#查看映射到外網的端口(可以看到外網端口是31833)

[root@k8s-master opt]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.1.0.1 <none> 443/TCP 101d
kubernetes-bootcamp NodePort 10.1.58.198 <none> 8080:30187/TCP 24h
nginx NodePort 10.1.150.252 <none> 80:31833/TCP 18h
nginx-test-n828d ClusterIP 10.1.221.205 <none> 80/TCP 5d18h
You have new mail in /var/spool/mail/root

#外網訪問的話需要通過node節點IP來訪問,查看這個svc在哪個k8s集群節點上

#kubectl describe pod nginx-77d48d9dc5-kghmh

 

 

 


免責聲明!

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



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