如何使用kops创建Kubernetes群集
在本文中,我们将使用KOPS在Amazon Web服务上安装生产级Kubernetes集群。
对于本教程,我们假设我们有AWS帐户。
我们还需要安装kubectl,如果我们之前的任何kubernetes文章遵循了任何遵循它,我们可能已经拥有它。
如果没有,我们将在此提供安装步骤以及AWSCLI等其他依赖项。
安装Kubectl,KOP和AWSCLI二进制文件
让我们通过获取kubectll来启动游戏
curl -Lo kubectl 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/
接下来我们将获得kops二进制文件
wget https://github.com/kubernetes/kops/releases/download/1.7.0/kops-linux-amd64 chmod +x kops-linux-amd64 sudo mv kops-linux-amd64 /usr/local/bin/kops
接下来,我们需要使用pip,python的包管理器来安装awscli。
我们显然需要安装Python。
sudo pip install awscli
配置AWSCLI.
我们需要访问AWS帐户的访问键,以便使用AWSCLI。
我们可以参考如何创建根AWS Access Keys文档。
一旦你这样做,我们就可以移动到配置部分
aws configure
然后按如下方式工作
AWS Access Key ID [None]: youraccesskeyID AWS Secret Access Key [None]: yourSecretAccessKey Default region name [None]: us-west-2 Default output format [None]:
我们稍后需要稍后的键,因此我们需要将它们输出到Env变量。
export AWS_ACCESS_KEY_ID=youraccesskeyID export AWS_SECRET_ACCESS_KEY=yourSecretAccessKey
我们还可以将这些行添加到~/。
Bashrc和运行源~/。
Bashrc命令让我们在重新启动中保持它。
但请注意,使用计算机的每个人都可以获得那些钥匙。
接下来让我们创建组和用户kops,并为其提供必需的权限,因此KOP可以在没有打嗝的情况下运行。
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
最后,我们创建了KOP用户的访问密钥
aws iam create-access-key --user-name kops
我们可以随时查看IAM用户使用以下命令
aws iam list-users
创建群集
对于群集创建,我们需要添加更多的env变量。
姓名将是群集的名称,因为我们不会DNS设置,我们将使用基于Gossip的DNS,并且对于该群集名称需要以K8S结尾。
本地和之前你可以放弃任何东西。
export NAME=cluster.k8s.local
接下来,我们需要为群集创建AWS存储桶,并使一个变量将用于为州商店使用的kops。
aws s3api create-bucket --bucket ${NAME}-state export KOPS_STATE_STORE=s3://cluster.k8s.local-state
接下来我们实际将创建群集。
我们将使用T2.
微实例因为它们是免费的符合条件的,如果我们注册了免费的层(如我),我们可以通过不需要费用。
否则,AWS将花费你一些钱。
kops create cluster \ --name=${NAME} \ --zones=us-west-2a \ --master-size="t2.micro" \ --node-size="t2.micro" \ --node-count="3" \ --ssh-public-key="~/.ssh/id_rsa.pub"
在此之后,我们将获取新群集的配置文件。
我们可以使用此命令编辑它。
它将使用默认编辑器,我们可以通过更改$编辑器变量来更改。
kops edit cluster ${NAME}
查看yaml文件后,我们可以使用此命令创建群集:
kops update cluster ${NAME} --yes
在此之后,你就在等待
以下命令可以显示群集准备后显示。
kops validate cluster
在初始化节点之前,我们可能必须执行几次。
这是我的群集在准备好时的样子。
部署某些应用程序
对于启动器,我们可以安装仪表板。
kubectl create -f https://git.io/kube-dashboard
我们可以使用以下命令使用仪表板:
kubectl proxy
接下来,我们将安装Good Old Sock Shop MicroServices演示。
kubectl apply -n sock-shop -f "https://github.com/microservices-demo/microservices-demo/blob/master/deploy/kubernetes/complete-demo.yaml?raw=true" kubectl -n sock-shop get svc front-end
你会得到类似的东西
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE front-end 100.66.88.111 <nodes> 80:30001/TCP 35m
在这种情况下,我们寻找的是Port 30001.
如果主服务器,我们需要将此端口与IP匹配。
需要在AWS安全组中允许对此端口的入站流量。
接下来,当我们从IP和端口形成URL时,我们应该得到袜子店。
使用群集完成后,可以使用此命令预览其删除:
kops delete cluster --name ${NAME}
实际上删除了这个:
kops delete cluster --name ${NAME} --yes
我不打算删除它,因为我们将在下一篇文章中使用kube提示。
有了这一点,我们在成功创建与KOPS的生产级kubernetes集群之后结束了本文。
KOPS代表Kubernetes操作,并且只要我们在AWS上部署,它肯定会使操作简单。