Upgrade to Pro — share decks privately, control downloads, hide ads and more …

An Introduction to Kubernetes

Avatar for Kyle Bai Kyle Bai
September 22, 2017

An Introduction to Kubernetes

Avatar for Kyle Bai

Kyle Bai

September 22, 2017
Tweet

More Decks by Kyle Bai

Other Decks in Technology

Transcript

  1. Job R&D @ inwinSTACK Description 早期在校主要撰寫 java 與 objc 程式語⾔言,並專注於

    iOS Mobile 應⽤用程式開發,具備四年年開發經驗。次要研讀 Hadoop 與 Spark 資料運算框架,以及 Linux 相關技術。 研所與⼯工作期間則專注於 OpenStack、Ceph 與 Kubernetes 等雲原⽣生相關技術開源專案,閒暇之餘會參參加 相關專案社區及貢獻,並利利⽤用部落落格、GitHub 與 GitBook 進⾏行行筆記記錄。 Drink Coffee Good! Phone #7727 Love Buttocks kairen([email protected]) https://kairen.github.io/ About Me Kyle Bai
  2. Kubernetes 47% Containers remain the top emerging technology of interest

    to users. Among those currently deploying container orchestration or platform services on OpenStack, 47% are using Kubernetes. Why Kubernetes? Kubernetes and CNI Run custom application on Kubernetes How to contribute to Kubernetes Agenda Today I will talk about
  3. Docker 基於 Linux Kernel 的 cgroup, namespace,以及 Union FS 等

    技術,對處理理程式進⾏行行封裝隔離。 屬於作業系統層虛擬化。
  4. Kubernetes Pros 資源監控 Monitoring 滾動升級 Rolling-update ⾼高可靠性 High-availability ⾃自我修復 Self-healing

    雲端⽀支援 Cloud Provider 持久性儲存 Persistent Volumes 組態檔案 Configmap 安全性 Secret Kubernetes 管理理跨區域與主機的容器節點,提供基本部署、維運、管 理理,以及執⾏行行各項應⽤用程式,並具備多種特性。
  5. Kubernetes Master Kubernetes Master 包含了了四個基本組件: • Etcd: 主要為 Kubernetes 的資訊儲存

    與服務發現功能。 • API Server:以 REST APIs 介⾯面⽅方式提 供所有業務邏輯CURD操作。 • Controller Manager Server:所有其他 叢集級功能都是透過控制管理理器 (Controller Manager)來來操作。 • Scheduler:負責整個分散式系統的資源 排程。
  6. Kubernetes Nodes Kubernetes Node 包含了了三個基本組件: • Kubelet:與 API 溝通,並負責管理理的 映像檔、容器與資料

    Volume等操作。 也是連接 Master 的橋樑。 • Kube-proxy: 為了了解決外部網路路能夠 群曲跨機器叢集中容器提供的應⽤用服務 ⽽而設計,⽀支援 L4 的 Load Balancer。 • Container engine: 基於 OCI Container Runtime 來來執⾏行行應⽤用程式容 器實例例。
  7. API driven • 通過 API 完成節點之間溝通 • 明確定義與規範 API •

    使⽤用 gRPC 進⾏行行 Remote Procedure Call • 可擴展的 API • CRD(Custom Resource Definitions) • Custom Schedulers • API aggregation layer https://blog.openshift.com/kubernetes-deep-dive-api-server-part-1/
  8. Container Network Interface CNI 是 CNCF 容器網路路規範,更更是 Kubernetes 網路路插件基礎。其思想為在 Container

    Runtime 建立時,並建立 network namespace,之後呼叫 CNI 插件 來來設定 netns 網路路,最後提供給容器使⽤用。
  9. Network plugin calls IPAM plugin • IPAM(IP Address Management) Plugin:負責分配

    IP 給容器,主要 實做如 host-local 與 DHCP 等。
  10. Kubernetes Deployments Deployments 是部署 Pod 群組的抽象資源,其會確保 K8s 系統中指定數 量量副本的 Pod

    存活於叢集, 也可以利利⽤用 Label 及 Rolling update 來來進⾏行行 副本的擴展或更更新。
  11. Kubernetes Service Service 是 Pod 服務的抽象資源,具有簡單負載平衡的功能,由於 Pod 的數量量與IP 不會固定,可將⼀一群 Pod

    指派成 Service 並給予⼀一個固定IP (cluster IP),service 會將請求⾄至 cluster IP 的流量量導入其對應 pod。
  12. Kubernetes Community Contribution Kubernetes 可以以多種⽅方式來來進⾏行行社區貢獻: • 回報程式碼 Bug 與提交問題。 •

    修改 Bug、問題或是功能實現。 • 新增或修改官⽅方檔案。 • 協助使⽤用者解決遇到的問題。 • 參參加 Special Interest Groups 會議。 https://github.com/kubernetes/community/blob/master/contributors/devel/community-expectations.md
  13. Speed up PR merge 若若想要加快 PR 被 merge 的話,可以透過以下⽅方式來來達成: •

    透過⼩小的 Commit 來來將不同功能程式拆分到不同 Commit 或 PR 中,來來⽅方便便檢閱。 • 對於 PR 與邏輯進⾏行行更更多說明。 • 開發程式碼遵守約束,如 Coding Conventions、API Conventions 和 kubectl Conventions。 • 確認修改部分能夠跑過本地單元與功能等測試。 • 利利⽤用 k8s-ci-robot 指令設定正確的標籤與重新失敗測試。
  14. 台中場 時間:
 11/14(⼆二) 09:30-16:30 
 地點:
 台中科技⼤大學
 資訊館2801室
 
 ⾼高雄場

    時間:
 11/21(⼆二) 09:30-16:30 
 地點:
 中⼭山⼤大學
 國際研究⼤大樓樓1樓樓 IR1002
 
 活動免費入場 Kubernetes「容企新航向」巡迴論壇
 台中場/⾼高雄場 —洞洞悉容器新趨勢,開創企業IT新未來來 https://goo.gl/DMGevJ