1. 程式人生 > >如何在AWS上執行Kubernetes

如何在AWS上執行Kubernetes

眾所周知,亞馬遜有EC2容器服務,它是亞馬遜用於執行Docker容器的解決方案。不過我覺得EC2容器服務不怎麼好用,所以現在我要在AWS上測試Rancher和Kubernetes。

Kubernetes是一個用以自動化部署、彈性伸縮以及管理容器化應用程式的開源系統。Rancher是一個可用於企業內部的完整的容器管理和執行平臺,它提供企業級的訪問控制和容器編排。

Rancher環境部署

第一步,我會按預設的嚮導建立一個新的虛擬私有云,這個虛擬私有云是為Rancher準備的。接下來的事情就是建立一個或多個新主機,Rancher文件說要手動安裝Docker,我在這裡選擇了RancherOS AMI。AMI是專門為這個目的而生的,而且它非常的小(甚至於curl都沒有被安裝)。

這裡寫圖片描述

安全組限制了只有我的IP才可以訪問TCP埠 k8080。這一點很重要,因為預設的設定是不會啟動授權的。在不同主機間允許彼此的訪問也是件非常棒的事情,這可以通過儲存安全組來完成(然後順利拿到sg-identifier),並向那個安全組中新增所有訪問許可權。

這裡寫圖片描述

當新的instance準備就緒,只需使用SSH連線並且用sudo docker run -d --restart=always -p 8080:8080 rancher/server啟動Rancher伺服器Docker image就好了。Rancher的應用程式將自己在Docker image內執行。

$ sudo docker run -d --restart=always -p 8080
:8080 rancher/server Unable to find image 'rancher/server:latest' locally latest: Pulling from rancher/server ... Status: Downloaded newer image for rancher/server:latest 3baee4a975200c3eb4b18fd1351b07393cdd09455cf7917d46879a278399c02e

你可以用the docker logs -f {containerid}命令跟蹤日誌:

[[email protected]10-0-0-29
~]$ sudo docker logs -f 3baee4a975200c3eb4b18fd1351b07393cdd09455cf7917d46879a278399c02e 160901 8:40:30 [Note] /usr/sbin/mysqld (mysqld 5.5.49-0ubuntu0.14.04.1) starting as process 25 ... Uptime: 8 Threads: 1 Questions: 2 Slow queries: 0 Opens: 33 Flush tables: 1 Open tables: 26 Queries per second avg: 0.250 Setting up database Importing schema

簡直完美!Rancher server開始啟動了。你可以瀏覽到這個例項的IP,預設情況下,Rancher server將在埠8080上執行。所有的主機都可以使用公有的IP,可如果你是在虛擬私有云上有主機的話,這就有點麻煩了,所以你可以選擇使用私有IP而非公有IP。這可以在管理和設定裡進行更改。

這裡寫圖片描述

當Rancher server啟動並運行了,我們需要新增一些Docker主機。你可以啟動一個新的主機(這很讚的,因為它會啟動另一個有著相同配置的例項),或者你可以新增和server中的主機一樣的主機(不過這不是最好的辦法)。

Kubernetes環境部署

接下來,在Rancher server中的新增一個新的主機,點選Infrastructure,然後再點選Add Host 。主機新增完了之後,您可以新增Kubernetes環境了。 Kubernetes隨後將自動部署到新的主機上。

這裡寫圖片描述

這將需要幾分鐘的時間,你可以通過選擇環境監視其當前的狀態:

這裡寫圖片描述

Kubernetes環境建立完成後,您可以導航到Catalog裡部署一個容器。例如,選擇K8S Example Ghost容器——它幾乎不需要花時間,就能瞬間啟動並執行起來:

這裡寫圖片描述

在部署Kubernetes的過程中,堆疊會和下列例項一起被建立:

  • Rancher Ingress Controller 1 (rancher/ingress-controller):Rancher Ingress Controller將充分利用Rancher現有的負載平衡功能,並結合Kubernetes ingress的特性,整合成Rancher的負載均衡。
  • Rancher Server (rancher/server):Rancher 管理伺服器,它將執行web前端和API。
  • Rancher Agent (rancher/agent):每個節點都會獲得一個相對獨立的、用以管理節點的agent。
  • Rancher Kubernetes Agent 1 (rancher/kubernetes-agent):負責處理Rancher和Kubernetes之間通訊的代理。
  • Rancher Agent Instance (rancher/agent-instance):Rancher的代理例項的image。
  • Kubernetes ETCD 1 (rancher/etc):etcd是用於物件和元資料的持久化、安全的分散式儲存的高可用性鍵值儲存元件。
  • Kubernetes Proxy 1 (rancher/k8s):在每個節點上執行的Kubernetes network proxy。
  • Kubernetes Scheduler 1 (rancher/k8s):Kubernetes controller manager是Kubernetes的一個核心元件。
  • Kubelet 1 (rancher/k8s):kubelet是在每個節點上執行的最重要的“節點代理”。

當你要新增一個額外的主機時,以下這些也會被同步新增:

  • Kubernetes Proxy2
  • Kubernetes Etcd 2
  • Kubelet 2

因為我不想自己維護我自己的registry,所以我建立了一個Amazon Container Registry,並使用了Rancher的registry。你可以直接複製Amazon Container Registry裡的地址,使用者名稱AWS(注意區分大小寫)和密碼(base64編碼字串)。

你可以這樣獲得credentials:

aws ecr get-login --region us-east-1

然後建立Docker image:

docker build -t dutchcoders .

給image打上標籤:

docker tag dutchcoders:latest {url}/dutchoders:latest

push 這個image去registry:

docker push {url}/dutchcoders:latest

相關推薦

如何在AWS執行Kubernetes

眾所周知,亞馬遜有EC2容器服務,它是亞馬遜用於執行Docker容器的解決方案。不過我覺得EC2容器服務不怎麼好用,所以現在我要在AWS上測試Rancher和Kubernetes。 Kubernetes是一個用以自動化部署、彈性伸縮以及管理容器化應用程式的

使用 Kubeless 在 AWS Kubernetes 叢集中執行 FaaS

藉助無伺服器計算技術,無需預置、擴充套件或管理任何伺服器即可構建和執行應用程式和服務。FaaS(函式即服務)是一種執行時服務,它通過在需要時啟動程式碼位(函式)實現無伺服器計算,讓開發人員無需管理基礎設施,並讓開發人員可以簡單地編寫業務邏輯程式碼。隨著 Kubernetes 的興起,多個開放

AWS執行最新的Kubernetes

在早期的一篇博文中,我介紹瞭如何使用 kops 在 AWS 上設定 Kubernetes 叢集。預設情況下,kops create cluster 命令會從穩定的 kops 渠道中選擇預設的 Kubernetes 版本,這適用於多數開發人員。如果您需要特定版本,可以使用 --kubernet

在你的電腦執行Kubernetes

近期對 550 名 Cloud Native Computing Foundation (雲原生計算基金會) 成員的調查證實:Kubernetes 是編配平臺的首選。此外,調查再次證實,Amazon Web Services 仍然是在雲中部署 Kubernetes 叢集的首選。kuberne

AWS 執行 Oracle 的資源

Amazon Web Services 誠聘精英。 Amazon Web Services (AWS) 是 Amazon.com 的一個充滿活力、不斷壯大的業務部門。我們現誠聘軟體開發工程師、產品經理、客戶經理、解決方案架構師、支援工程師、系統工程師以及設計師等人才。請訪問我

GE Healthcare 推出在 AWS 執行的 Health Cloud

Jackson 表示:“連通性是公司數字戰略的基石。我們可以通過解放資料和應用機器學習來創造更智慧的裝置、新產品,並進軍新市場,從而為客戶創造更多價值。隨著 AWS 作為雲提供商在該行業中獲得更多認可,我們可以和 AWS合作,邀請我們的共享客戶加入 GE Health Cloud。醫療

Kubernetes執行SAP UI5應用(

2018年只剩最後30天了。Jerry在2017年的最後一天,曾經立下一個目標:這個微信公眾號在2018年保證至少每週釋出一篇SAP原創技術文章。 從Jerry在後臺統計的2018全年文章數量來看,這個目標已經提前實現了。為了感謝大家的支援,在2018年的最後一天,Jerry會發佈一個合集:《SAP成都研究

如何在VMware vSphere安裝Kubernetes執行Docker

安裝Google Kubernetes不需要VMware vSphere或任何其他虛擬機器管理程式。但是,在VM上執行此操作非常方便,因此強烈建議特別針對開發和測試環境。 無論是VM還是物理機,都必須使用Linux作業系統。和往常一樣,我選擇了CentOS 7,它是RHEL

[KubeCon+CloudNativeCon China 2018] 在Kubernetes執行區塊鏈服務(BaaS)

筆者注:本文是在2018年11月15日由Linux基金會CNCF主辦的KubeCon & CloudNativeCon China 2018大會的“Running Blockchain as a Service (BaaS) on Kubernetes”演講內容基礎上整理而成,從技術上介紹了阿

Kubernetes(k8s)中文文件 在Kubernetes執行你的第一個容器_Kubernetes中文社群

譯者:鍾健鑫 好了,如果你已經開始了任何一個入門指南,並且啟動了一個Kubernetes叢集。那麼接下來呢? 這個指南會幫助你正對Kubernetes,在其叢集上執行第一個容器。 執行一個容器 (簡單版) 從這時開始,我假設你已經根據其它入門指南安裝了kubectl。 下面這行kubectl命令會

Kubernetes執行SAP UI5應用(下): 一個例子體會Kubernetes內容器的高可用性和彈性伸縮

上一篇文章 在Kubernetes上執行SAP UI5應用(上),我介紹瞭如何在Docker裡執行一個簡單的SAP UI5應用,並且已經成功地將一個包含了這個UI5應用的docker映象上傳到Docker hub上。 這篇文章作為這個主題的下半部分,將會介紹如何在Kubernetes裡執行這個do

Kubernetes執行區塊鏈服務(BaaS)

本文是在2018年11月15日由Linux基金會CNCF主辦的KubeCon & CloudNativeCon China 2018大會的“Running Blockchain as a Service (BaaS) on Kubernetes”演講內容基礎上整理而成,從技術上介

機器學習工具Kubeflow來了,在Kubernetes執行更容易_Kubernetes中文社群

Kubeflow是一個專用於Kubernetes上具備可移植性與可擴充套件性機器學習專案。Kubeflow並非一個新服務,而是作者為了讓Google的機器學習開源軟體TensorFlow能更直覺的使用而開發。 目前專案放置在GitHub上,功能是一鍵控制TensorFlow訓練控制器使用CPU

在Docker和Kubernetes執行MongoDB微服務

本文介紹了利用Docker和Kubernetes搭建一套具有冗餘備份集合的MongoDB服務,從容器對CI和CD引發的改變入手,討論了容器技術對MongoDB帶來的挑戰和機會,然後實戰如何部署一套穩定的MongoDB服務,非常的乾貨~ 介紹 想嘗試在膝上型電腦上執行MongoDB麼?希望通過執行

Kubernetes執行SAP UI5應用(下)

上一篇文章 在Kubernetes上執行SAP UI5應用(上),我介紹瞭如何在Docker裡執行一個簡單的SAP UI5應用,並且已經成功地將一個包含了這個UI5應用的docker映象上傳到Docker hub上。 這篇文章作為這個主題的下半部分,將會介紹如何在Kubernetes裡執行這個do

AWS lambda執行用Java編寫的APLs

從 Spring 和 Spring Boot 到 Jersey 到 Spark,Java 開發人員可以隨心選擇各種開放源來構建伺服器端 API。這些框架通常都在編譯包內嵌入了用來執行伺服器的 Servlet 容器引擎,例如 Tomcat。AWS Lambda 和 Amazon API Gat

如何在Windows 10執行Docker和Kubernetes

在Windows上學習Docker和Kubernetes,開始的時候會讓你覺得無從下手。最起碼安

Kubernetes 執行 PostgreSQL

導讀 建立統一管理的,具備靈活性的雲原生生產部署來部署一個個性化的資料庫即服務(DBaaS)。

Kubernetes執行有狀態應用:從StatefulSet到Operator

    一開始Kubernetes只是被設計用來執行無狀態應用,直到在1.5版本中才添加了StatefulSet控制器用於支援有狀態應用,但它直到1.9版本才正式可用。本文將介紹有狀態和無狀態應用,一個通過K8S StatefulSet來編排有狀態應用的示例,以及當前有狀態應用容器化現狀及