1. 程式人生 > >在AWS上執行最新的Kubernetes

在AWS上執行最新的Kubernetes

早期的一篇博文中,我介紹瞭如何使用 kops 在 AWS 上設定 Kubernetes 叢集。預設情況下,kops create cluster 命令會從穩定的 kops 渠道中選擇預設的 Kubernetes 版本,這適用於多數開發人員。如果您需要特定版本,可以使用 --kubernetes-version 選項指定。但是,如果您想使用 kops 建立一個使用 Kubernetes 中近期合併的 PR 的版本,該怎麼操作呢?(或許您也像我一樣,等不及完成整個測試周期,來讓 kops 在渠道中為此提供支援,而是想立即試用此功能!)這篇由 Micah Hausler 所寫的客座文章說明了如何通過 Kubernetes 的開發版本,來使用 kops 執行您自己的叢集。

– Arun

kops 是在 AWS 上建立、執行和管理 Kubernetes 叢集的最簡單的工具之一。您可以按照 Arun 早期的一篇博文 Manage Kubernetes Clusters on AWS Using Kops (在 AWS 上使用 Kops 管理 Kubernetes 叢集) 中的說明,輕鬆為已釋出的 Kubernetes 版本建立叢集。在本文中,我們將展示如何建立執行 Kubernetes 開發版本的叢集。kops 聲明瞭其官方支援的 Kubernetes 版本,截至本文釋出時,受支援的最新版本是 Kubernetes 1.8.4。本文中的示例使用的 Kubernetes 版本全都

受 kops 支援,因此建議您只將這些版本用於開發、原型設計和測試。

背景 – 版本二進位制

使用 kops 建立叢集時,您可以選擇指定 kops 支援的 Kubernetes 版本,也可以向 kops 提供 Kubernetes 二進位制檔案所在的 HTTP URL 地址。

Kubernetes 釋出團隊將版本二進位制檔案放在了位於以下位置的 Google 雲端儲存儲存桶“kubernetes-releases”中:https://storage.googleapis.com/kubernetes-release/release/

您可以使用

gsutil 命令列工具驗證特定路徑中的所有必需二進位制檔案。(URL 的“https://storage.googleapis.com/”將會替換為“gs://”)

gsutil ls gs://kubernetes-release/release/v1.9.0/

每個指向 Kubernetes 的 Pull Request 都會經過 kops 測試,並在 Github 狀態中顯示為“pull-kubernetes-e2e-kops-aws”測試。

單擊 kops 測試的“詳細資訊”後,您會看到測試輸出以及指定 Pull Request 的具體提交版本。

本測試所用的 Kubernetes 二進位制檔案也儲存在名為“kubernetes-release-pull”的 Google 雲端儲存儲存桶中。如果您通過搜尋 kops 測試的原始版本日誌來查詢版本字串,就會發現版本二進位制檔案已上傳至以下位置:

gs://kubernetes-release-pull/ci/pull-kubernetes-e2e-kops-aws/<version>

因此,對於 pull request #56759,您可以將 kops 中的 Kubernetes 版本設定為 URL

如果您對使用 Kubernetes 的自定義版本和將二進位制檔案上傳至 S3 感興趣,請參閱 kops 文件

建立叢集

您必須要有相應的 AWS 許可權,才能建立叢集。(如果您使用的不是跨賬戶角色,請設定環境變數 AWS_SDK_LOAD_CONFIG=1) 參閱 kops 文件,瞭解如何利用必要的 IAM 許可權建立 AWS 使用者。IAM 許可權的簡短列表如下所示:

AmazonEC2FullAccess
AmazonRoute53FullAccess
AmazonS3FullAccess
IAMFullAccess
AmazonVPCFullAccess

擁有具有相應許可權的使用者後,您就可以建立叢集了。您需要為叢集命名,並需要有 kops 儲存宣告所需的 S3 儲存桶,以及您要在其中建立叢集的 AWS 區域和可用區。下列示例使用 us-east-1 和 Kubernetes 1.9.0。

export CLUSTER_NAME="example.cluster.k8s.local"
export KUBERNETES_VERSION="https://storage.googleapis.com/kubernetes-release/release/v1.9.0/"
export AWS_DEFAULT_REGION=${AWS_DEFAULT_REGION:-us-east-1}
export AWS_AVAILABILITY_ZONES="$(aws ec2 describe-availability-zones --query 'AvailabilityZones[].ZoneName' --output text | awk -v OFS="," '$1=$1')"
export S3_BUCKET=${S3_BUCKET:-kops-state-store-$(cat /dev/random | LC_ALL=C tr -dc "[:alpha:]" | tr '[:upper:]' '[:lower:]' | head -c 32)}
export KOPS_STATE_STORE=s3://$S3_BUCKET

如果您要為 kops 使用新的 S3 儲存桶,則需要先建立:

aws s3api create-bucket \
 --bucket $S3_BUCKET \
 --create-bucket-configuration LocationConstraint=$AWS_DEFAULT_REGION

現在,您可以建立叢集了!建立叢集時有很多選項可供選擇,請檢視“kops create cluster -h”的幫助輸出,瞭解可用的選項。

kops create cluster \
 --name $CLUSTER_NAME \
 --zones $AWS_AVAILABILITY_ZONES \
 --kubernetes-version $KUBERNETES_VERSION \
 --yes

執行 kops create後, kubectl 環境將會更新為指向您的新叢集。所有資源完成聯機需要幾分鐘的時間;您可以使用命令 kops validate cluster檢視叢集狀態。

驗證叢集

現在,您已經在 AWS 上建立了一個 Kubernetes 叢集!

行動起來吧

去年,kops 專案取得了長足發展,我們喜見社群積極參與,貢獻自己的力量。如果您需要幫助,可以加入 Kubernetes Slack,並在 #kops 頻道中提問。如果您想貢獻一份力量,請參閱有關貢獻的 kops 文件

以下是在單個指令碼中編譯的上述所有步驟:

Micah Hausler 是 Skuid 的網站運維工程師,負責管理 DevOps 團隊,同時還是 Kubernetes 參與者。您可以在 Twitter、Github 和 Kubernetes Slack 上搜索 @micahhausler 找到他。

本博文中的內容和觀點均源自第三方作者,AWS 對本博文中的內容或準確性不承擔任何責任。

檢視評論

相關推薦

AWS執行最新Kubernetes

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

如何在AWS執行Kubernetes

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

AWS 執行 Oracle 的資源

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

GE Healthcare 推出在 AWS 執行的 Health Cloud

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

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

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

Kubernetes執行SAP UI5應用(

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

[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

在你的電腦執行Kubernetes

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

如何在Windows 10執行Docker和Kubernetes

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

Kubernetes 執行 PostgreSQL

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

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

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

IDEA拷貝git最新項目資源

stop alt nbsp ont blog idea cnblogs control mage File->new ->project version control->git-> 進入項目git對應的網址,選擇第一個backstop,復制url: