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

Kubernets 技術應用案例

Kyle Bai
December 26, 2017

Kubernets 技術應用案例

Kyle Bai

December 26, 2017
Tweet

More Decks by Kyle Bai

Other Decks in Technology

Transcript

  1. About Me Kyle Bai Job R&D(TAM) @ inwinSTACK Description 早期在校主要撰寫

    java 與 objc 程式語⾔言,並專注於 Mobile 應⽤用程式開發,具備四年年開發經驗。次要研讀 Hadoop 與 Spark 資料運算框架,以及 Linux 相關技術。 ⼯工作期間則專注於 OpenStack、Ceph 與 Container 相關 等 Cloud Native 技術與開源專案,閒暇之餘會參參與相關專 案社區及貢獻,並利利⽤用部落落格、GitHub 與 GitBook 做筆 記。 Drink Coffee Mobile Love Good! #7727 Buttocks
  2. Why Kubernetes? Why Choose Kubernetes to Manage Containerized? Use Cases

    for Kubernetes Kubernetes Architecture Other Use Case Introduction to Kubernetes Architecture. The Case for Kubernetes. Such as OpenStack, TensorFlow. Company use cases. Agenda Today we will talk about
  3. Kubernetes Pros 資源監控 Monitoring 不中斷升級 Rolling-update ⾼高可靠性 High-availability ⾃自我修復 Self-healing

    雲端⽀支援 Cloud Provider 持久性儲存 Persistent Volumes 組態檔案 Configmap 安全性 Secret Kubernetes 管理理跨區域與主機的容器節點,提供基本部署、維運、管 理理,以及執⾏行行各項應⽤用程式,並具備多種特性。
  4. Microservices 微服務 (Microservices) 是⼀一種軟 體架構風格,它是以專注於單⼀一責 任與功能的⼩小型功能區塊 (Small Building Blocks) 為基礎,利利⽤用模組

    化的⽅方式組合出複雜的⼤大型應⽤用程 式,各功能區塊使⽤用與語⾔言無關 (Language-Independent/Language agnostic) 的 API 集相互通訊。
  5. Kubernetes Master Kubernetes Master 包含了了四個基本組件: • Etcd: 主要為 Kubernetes 的資訊儲存

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

    的橋樑。 • Proxy: 為了了解決外部網路路能夠群曲跨 機器叢集中容器提供的應⽤用服務⽽而設 計。⽀支援 TCP,UDP stream forwarding 或 round robin TCP,UDP forwarding。 • Container:基於 OCI Container Rutime 來來執⾏行行應⽤用程式容器實例例。
  7. Kubernetes Container • CRI • Docker • rkt • frakti

    • cri-containerd • cri-o • virtlet • Infranetes
  8. Kubernetes Network • Overlay / Underlay Network • CNI/CNM •

    Flannel • Calico • Weave • Kuryr • OpenContrail • OVN • Linen
  9. Kubernetes Storage • CSI • Volumes • Persistent Volumes •

    Many Volume Plugin • Storage Class • External-storage • Dynamic Provisioning
  10. Kubernetes - Pod Pod 是 K8s 中最⼩小的部署單位,可以將⼀一個或多個容器組成⼀一個 Pod,Pod 所包含的容器只會運⾏行行在同⼀一個 Host

    上,並共享 network namespaces、IP port,每個 Pod的 network mapping 都是由 container pause 所封裝處理理的。
  11. Kubernetes - Deployments Deployments(Replication C o n t r o

    l l e r s ) 是 部 署 群 組 Pods,其會確保 K8s 系統中 指定數量量副本的 Pod 存活, 也可以利利⽤用 Label 及 Rolling update 來來進⾏行行副本的擴展或 更更新。
  12. Kubernetes - Service Service 是 pod 服務的抽象層, 具有簡單負載平衡的功能,由於 pod 的數量量與IP

    不會固定,可將 ⼀一群 pod指派成 service 並給予 ⼀一個固定IP (cluster IP),service 會將請求⾄至 cluster IP 的流量量導 入其對應 pod。
  13. TF integrated with K8s Step1: Package Workers & Parameters general

    code into Docker images. Step2: Create the clusters according to TensorFlow’s cluster spec into ConfigMap. Step3: Define the cluster Deployment and Service,…, etc to run. https://github.com/tensorflow/ecosystem
  14. The Infrastructure Sandwich • Bare metal、Virtual machine and Container. •

    Auto-scale the Kubernetes Cluster. • Helm-based Application deployment on Kubernetes. • Multi-tenant environment. • Manage multi Kubernetes cluster. Manage application Kubernetes Manage infrastructure Kubernetes Provide service OpenStack,…,etc
  15. Call to Action • 輕量量化⽅方式有助於促進更更多的貢獻。 • 需要更更多的核⼼心多樣性 (Across the community)。

    • 結合 OpenStack 與 Kubernetes 社區⼀一起進⾏行行。 • Roadmap that can be publicly shared!!! • Community IRC Meetings: [Every Tuesday @ 3PM UTC], #openstack- meeting-5 on freenode. • OpenStack Helm Doc,https://docs.openstack.org/developer/openstack-helm • Project URL in GitHub,https://github.com/openstack/openstack-helm/ • OpenStack-helm Slack,http://slack.k8s.io/,#openstack-helm • OpenStack-helm launchpad,https://launchpad.net/openstack-helm • Community Meeting Agenda,https://etherpad.openstack.org/p/openstack- helm-meeting-agenda