如何在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來編排有狀態應用的示例,以及當前有狀態應用容器化現狀及