2 個 K8S 命令輕鬆部署深度學習模型

如今利用 Keras 構建深度學習模型已然成為一種風尚。Kubernetes 無需人工干預即可全部自動化完成任務的特點,使之成為部署學習模型的絕佳選擇。今天我們就從 Keras 構建深度學習模型角度出發,通過 Flask 提供 REST API 服務,看看如何利用 Kubernetes 兩個命令輕鬆部署深度學習模型。接下來,我將在 Google Cloud 上進行全程部署。主要內容包括以下四部分: 使用 Google Cloud 創建環境; 使用 Keras、Flask 和 Docker 作為 API 提供深度學習模型; 使用 Kubernetes 部署所述模型; 結語。 使用 Google Cloud 創建環境首先在 Google Compute Engine 上使用一個小型虛擬機來構建、服務和定位深度學習模型。我曾試圖在 Windows 10 筆記本電腦上安裝最新版本的 Docker ...
Read more

這可能是最為詳細的Docker入門吐血總結

在計算機技術日新月異的今天, Docker 在國內發展的如火如荼,特別是在一線互聯網公司, Docker 的使用是十分普遍的,甚至成為了一些企業面試的加分項,不信的話看看下面這張圖。載入超時,點擊重試這是我在某招聘網站上看到的招聘 Java開發工程師 的招聘要求,其中有一條熟悉 docker 成為了你快速入職的加分項,由此可見熟悉 docker 在互聯網公司的地位之重要。當然對於我們 CTF選手 而言,熟悉 docker 可以快速搭建 CTF環境 ,完美地還原比賽真實漏洞的場景,幫助我們快速提升自己。市面上已經有很多優秀的教程,但是很多原理性的東西,筆者認為那些教程對初學者而言還是很難理解,感覺沒有說清楚(筆者自己都覺得挺懵逼的),為了讓初學者少走彎路,我將以我的學習經歷以及作為一個 CTF選手 的角度,編寫此套教程,來帶大家去了解並熟練運用 docker ...
Read more

Minikube 入門:筆記本上的 Kubernetes

你已經安裝了 Docker。 你的計算機是一個基於 RHEL / CentOS / Fedora 的工作站。 你已經安裝了正常運行的 KVM2 虛擬機管理程序。 你有一個可以工作的 docker-machine-driver-kvm2。 以下命令將安裝該驅動程序: curl -Lo docker-machine-driver-kvm2 https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-kvm2 chmod +x docker-machine-driver-kvm2 && sudo cp docker-machine-driver-kvm2 /usr/local/bin/ && rm ...
Read more

QCon技術乾貨:個推基於Docker和Kubernetes的微服務實踐

2016年伊始,Docker無比興盛,如今Kubernetes萬人矚目。在這個無比需要創新與速度的時代,由容器、微服務、DevOps構成的雲原生席捲整個IT界。在近期舉辦的QCon全球軟體開發大會上,個推應用平台基礎架構高級研發工程師王志豪,基於他在基礎架構方面多年的經驗,分享了《個推基於Docker和Kubernetes的微服務實踐》。載入超時,點擊重試個推應用平台基礎架構高級研發工程師王志豪一、微服務化微服務架構 微服務是將單一的應用程序拆分成多個微小的服務,各個小服務之間松耦合,高內聚,每個小的服務可以單獨進行開發,不依賴於具體的編程語言,也可以使用不同的數據存儲技術,各個服務可以獨立部署,擁有各自的進程,相互之間通過輕量化的機制進行通信(如基於HTTP的API介面),所有的服務共同實現具體的業務功能。客戶端與服務端通信有2種方式,第一種是客戶端直接與各個微服務進行通信,這樣的架構有4個缺點: ...
Read more

Kubernetes 調度器解析

默認情況下,kube-scheduler 提供的默認調度器能夠滿足我們絕大多數的要求,我們前面和大家接觸的示例也基本上用的默認的策略,都可以保證我們的 Pod 可以被分配到資源充足的節點上運行。但是在實際的線上項目中,可能我們自己會比 kubernetes 更加了解我們自己的應用,比如我們希望一個 Pod 只能運行在特定的幾個節點上,或者這幾個節點只能用來運行特定類型的應用,這就需要我們的調度器能夠可控。 kube-scheduler 是 kubernetes 的調度器,它的主要作用就是根據特定的調度演算法和調度策略將 Pod 調度到合適的 Node 節點上去,是一個獨立的二進位程序,啟動之後會一直監聽 API Server,獲取到 PodSpec.NodeName 為空的 Pod,對每個 Pod 都會創建一個 ...
Read more

Kubernetes Microservices with Docker[4]Mongodb

mongdb 在docker/minikube 都部署過幾次了,不過還可以看看有啥新觀點.MongoDB is based on the BSON (binary JSON) storage model. Documents are stored in ollections. Being a schema-free data store, no two documents need to be alike in terms of the fields in a BSON document. In a large scale cluster several instances of MongoDB could be running and several issues could arise.-MongoDB instances scheduling -Scaling the MongoDB ...
Read more

通過NPD在kubernetes集群上增強節點的錯誤檢測能力

在kubernetes集群上,通常我們只是管制集群本身以及容器的穩定運行。但是這些穩定性都是強依賴節點node的穩定的。可是node的管理,在kubernetes是比較弱的,因為可能對於kubernetes的初始設計來說,這些應該是IaaS的事。但是隨著kubernetes的發展,它越來變成了一個操作系統,它管理的內容將越來越多,所以對於node的管理也將納入kuberntes里管理。所以延伸出了node problem detector(參考1)這個項目。 Node的主要影響kuberntes穩定性的因素 硬體錯誤 CPU壞了 Memory壞了 磁碟壞了 kernel問題 kernel deadlock (內核死鎖) corrupted file systems (文件系統崩潰) unresponsive runtime daemons ...
Read more

為HashiCorp產品提供一流的 Kubernetes 支持

Consul recently released a new set of features to support first-class integration with Kubernetes. The official Helm Chartsimplifies the deployment of Consul on Kubernetes. The auto-join and service catalog sync capabilities solve important cross-cluster challenges between both multiple Kubernetes clusters and non-Kubernetes services interacting with Kubernetes services. The sidecar injection and ...
Read more

SpringBoot應用和PostgreSQL資料庫部署到Kubernetes上的一個例子

創建一個名為ads-app-service的服務:載入超時,點擊重試上述Service的yaml文件里每個欄位,在Kubernetes的API文檔里有詳細說明。 https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.12/#servicespec-v1-core如何找到這個url呢?Reference->API Reference->v1.12: 比如Service yaml文件里Spec區域需要出現的欄位,每個欄位在幫助文檔里有詳細說明:Spec部分的子區域ports可以定義多個port,通過符號"-"代表一個類似數組的結構:ports數組裡每個元素包含的欄位: name nodePort port protocol targetPort 用kubectl create ...
Read more