真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么用KOps在AWS上部署和管理Kubernetes

本篇內(nèi)容主要講解“怎么用KOps在AWS上部署和管理Kubernetes”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“怎么用KOps在AWS上部署和管理Kubernetes”吧!

做網(wǎng)站、成都網(wǎng)站設(shè)計,成都做網(wǎng)站公司-創(chuàng)新互聯(lián)已向數(shù)千家企業(yè)提供了,網(wǎng)站設(shè)計,網(wǎng)站制作,網(wǎng)絡(luò)營銷等服務(wù)!設(shè)計與技術(shù)結(jié)合,多年網(wǎng)站推廣經(jīng)驗,合理的價格為您打造企業(yè)品質(zhì)網(wǎng)站。

Kubernetes作為容器編排的領(lǐng)導(dǎo)者地位已經(jīng)不容置疑,可是Kubernetes還是面臨這一些問題,一個是學(xué)習(xí)曲線非常陡峭,從容器到K8s你仍然要學(xué)習(xí)很多東西,另一個是部署,要在部署一套K8s并不容易,你有一些選擇:

  • minikube minikube在你的本機(jī)的VM中安裝一個單節(jié)點的K8s集群,但是這個只能用于本地測試和學(xué)習(xí),不能用于真正的生產(chǎn)和大規(guī)模使用。

  • 裸機(jī) bare metal 可以自己在裸機(jī)(或者虛機(jī))上安裝,但是要自己管理物理資源,配置網(wǎng)絡(luò)和驅(qū)動,很麻煩。如果想挑戰(zhàn)自己的話可以去參考官方文檔 

  • 云服務(wù) (cloud hosted solution),各大云廠商都推出了自己的K8s的云方案。云服務(wù)優(yōu)勢明顯,但通常云服務(wù)的master是由云廠商控制,用戶自己對集群的控制比較少,而且,云服務(wù)使得用戶把自己的業(yè)務(wù)綁定在某個云廠商。例如:

    • Google GKE

    • Azure AKS

    • Amazon EKS

    • IBM Cloud Kubernetes Service

    • 阿里 容器服務(wù)

  • 最后,我們希望使用云,但是又不想受到云廠商的限制,這個時候我們可以使用例如以下個工具在云上部署自己的K8s。例如:

    • Kops

    • Kubespray

我們今天就看看如何使用kops在AWS上部署一個K8s的cluster。

  • 假定所有操作在Linux客戶端中完成,Mac或者其它客戶端自行搜索。

  • 假定你有一個擁有對應(yīng)權(quán)限的AWS account。

安裝客戶端

安裝kubectl,kubectl是K8s的命令行客戶端,Kops會使用該客戶端進(jìn)行k8s的配置。

curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
chmod +x ./kubectl
sudo mv ./kubectl /usr/local/bin/kubectl

安裝kops

curl -LO https://github.com/kubernetes/kops/releases/download/$(curl -s https://api.github.com/repos/kubernetes/kops/releases/latest | grep tag_name | cut -d '"' -f 4)/kops-linux-amd64
chmod +x kops-linux-amd64
sudo mv kops-linux-amd64 /usr/local/bin/kops

配置AWS資源

首先要安裝AWS cli

實現(xiàn)我們需要一個AWS用戶用于運行Kops,該用戶需要具有以下的權(quán)限:

AmazonEC2FullAccess
AmazonRoute53FullAccess
AmazonS3FullAccess
IAMFullAccess
AmazonVPCFullAccess

用CLI創(chuàng)建對應(yīng)的用戶組,用戶和access key:

aws iam create-group --group-name kops
aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonEC2FullAccess --group-name kops
aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonRoute53FullAccess --group-name kops
aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonS3FullAccess --group-name kops
aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/IAMFullAccess --group-name kops
aws iam attach-group-policy --policy-arn arn:aws:iam::aws:policy/AmazonVPCFullAccess --group-name kops
aws iam create-user --user-name kops
aws iam add-user-to-group --user-name kops --group-name kops
aws iam create-access-key --user-name kops

記錄下最后一步創(chuàng)建的用戶SecretAccessKey 和 AccessKeyID,并在客戶端中配置,導(dǎo)出到環(huán)境變量

# configure the aws client to use your new IAM user
aws configure           # Use your new access and secret key here
aws iam list-users      # you should see a list of all your IAM users here

# Because "aws configure" doesn't export these vars for kops to use, we export them now
export AWS_ACCESS_KEY_ID=$(aws configure get aws_access_key_id)
export AWS_SECRET_ACCESS_KEY=$(aws configure get aws_secret_access_key)

用戶配置好了可以配置DNS,這個是可選項,我們先略過。

Kops把K8s集群的配置存儲在AWS的S3中,每一個集群的配置對應(yīng)于一個S3文件,所有我們創(chuàng)建一個S3的bucket用于存儲集群的配置。

export BUCKET=
aws s3api create-bucket \
    --bucket $BUCKET \
    --region us-west-2 \
    --create-bucket-configuration  LocationConstraint=us-west-2
aws s3api put-bucket-versioning --bucket $BUCKET  --versioning-configuration Status=Enabled

好了,準(zhǔn)備完畢,我們可以開始創(chuàng)建K8s集群了。

創(chuàng)建集群

首先, 如果你的客戶端沒有ssh key,創(chuàng)建一個

ssh-keygen -t rsa -C "your_email@example.com"

配置環(huán)境變量,定義集群的名字和配置的url

export NAME= .k8s.local
export KOPS_STATE_STORE=s3://$BUCKET

創(chuàng)建集群之前,查看一下有哪些可用的AZ

aws ec2 describe-availability-zones --region us-west-2

我當(dāng)前在使用 us-west-2的region可用的az是這三個

{
    "AvailabilityZones": [
        {
            "State": "available",
            "Messages": [],
            "RegionName": "us-west-2",
            "ZoneName": "us-west-2a"
        },
        {
            "State": "available",
            "Messages": [],
            "RegionName": "us-west-2",
            "ZoneName": "us-west-2b"
        },
        {
            "State": "available",
            "Messages": [],
            "RegionName": "us-west-2",
            "ZoneName": "us-west-2c"
        }
    ]
}

那么我們就選則在us-west-2a中創(chuàng)建

kops create cluster \
    --zones us-west-2a \
    ${NAME}

注意這一步只是生成了集群的配置文件,并存儲在S3中。

可以使用kops命令,修改配置:

kops edit cluster ${NAME}

如果配置沒有問題,就可以部署了:

kops update cluster ${NAME} --yes

缺省的情況下,kops會創(chuàng)建所有對應(yīng)的AWS資源,包含VPC,子網(wǎng),EC2,Auto Scaling Group,ELB,安全組等等。

如果需要安裝在特定的子網(wǎng),在創(chuàng)建集群時可以指定子網(wǎng)的id。另外,也支持跨AZ的HA配置。

集群安裝好之后,需要幾分鐘時間啟動,我們可以用kubectl來查看一下狀態(tài)(Kops會自動把cluster的配置寫到~/.kube/config 文件中作為缺省配置):

kubectl cluster-info

建議安裝kube-dashboard,可以用UI來管理集群,Linux終端狂人自行略過。

怎么用KOps在AWS上部署和管理Kubernetes

在集群不需要的時候,可以用kops刪除集群:

kops delete cluster --name ${NAME}

擴(kuò)展和暫停集群

在云上的K8s集群可以很方便的擴(kuò)展,如果你的集群的計算資源都用的差不多了,你希望擴(kuò)展你的集群的時候,有兩種辦法。

一是直接修改AWS的auto scaling group。KOps會在AWS上創(chuàng)建兩個auto scaling group,一個用于Node,另一用于Master,通常我們只要修改Node所在的Auto Scaling Group的number就好了。

怎么用KOps在AWS上部署和管理Kubernetes

Kops的缺省設(shè)置是2,你可以把對應(yīng)的數(shù)值設(shè)置成自己需要的數(shù)字。

另一個就是通過Kops來修改

kops edit ig nodes

把maxSize和minSize都設(shè)置成需要的值,然后更新

kops update cluster --yes
kops rolling-update cluster

使用rolling-update可以保證在更新的時候業(yè)務(wù)不會中斷。

另外,有人可能會問,我希望不用的時候能把集群暫停,這樣就不會使用很多的AWS系統(tǒng)資源了,這要怎么辦。因為Auto Scaling Group的存在,如果直接stop對應(yīng)的EC2實例,Auto Scaling Group會創(chuàng)建新的實例的取代,所以這個方法是不管用的。其實辦法很簡單,只要把對應(yīng)的Auto Scaling Group的數(shù)值設(shè)置為0就好了。

同樣可以在AWS中直接修改Master和Node所在的Auto Scaling Group,或者在Kops中修改。

注意在Kops中修改,需要調(diào)用如下的命令來獲得Master所在group的名字。

$ kops get ig
Using cluster from kubectl context: staging.cluster-name.com

NAME			ROLE	MACHINETYPE	MIN	MAX	SUBNETS
master-us-west-2a	Master	m3.medium	0	0	us-west-2a
nodes			Node	t2.medium	0	0	us-west-2a

到此,相信大家對“怎么用KOps在AWS上部署和管理Kubernetes”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!


當(dāng)前名稱:怎么用KOps在AWS上部署和管理Kubernetes
文章來源:http://weahome.cn/article/pschjo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部