Kops:更便捷的使用Kubernetes


对于那些第一次接触Kubernetes(通常被称为k8s)并且想独自运行他们自己的第一个pods,services和deployments的人来说,通常存在很多指南,例如可以使用Minikube在他们自己的电脑上设置和安装k8s。这也被认为是初次接触Kubernetes时的一种比较好的方式,到最后,这些文章会介绍如何将他们的应用栈发布到生产环境中。通常运行在一个类似Google Cloud Platform(GCP)或者Amazon Web Services(AWS)的云环境中可能会更利于使用kops。

介绍一下Kops

Kops被描述为“用最容易的方式启动和运行生产级别的k8s集群” ,正好与Kelsey Hightower的文章 “Kubernetes the Hard Way”相对。 相对而言,我建议如果你想更倾向于使用,或想更好地了解使用k8s的容器编排,那么就应该尝试一下该教程,并在设置过程中执行每一个步骤。

虽然用户创建Kubernetes的高可用性集群的过程经常会被认为是“困难的方式”,但是kops可以将大部分流程自动化。它将执行至少8个任务,这其中包括在集群中创建子网和DHCP参数,自动分组你的主节点和工作节点,为这些节点读取配置文件信息, IAM定义和创建属于你的实例的EBS卷,进行网络设置安全组的配置。

安装Kops和创建一个集群

使用本教程,首先需要在AWS上创建一个账户,然后安装AWS CLI。同样你也可以安装kops在你自己的机器上。针对MacOS的用户,可以使用Homebrew:
$ brew update && brew install kops

针对Linux用户:
$ wget https://github.com/kubernetes/kops/releases/download/1.6.1/kops-linux-amd64
$ chmod +x kops-linux-amd64
$ mv kops-linux-amd64 /usr/local/bin/kops

现在,我们将基于AWS Route53 DNS服务使用k8s来创建一个子域名。我使用的子域名是 kubernetes.mydomain.com,并且创建了一个主机区域:
$ aws route53 create-hosted-zone --name kubernetes.mydomain.com --caller-reference 1

这将返回关于主机区域的信息,包括域名服务器的DelegationSet.。我选择了.com作为顶级域名,并且输入我们的域名注册为NS记录。

我们同样需要创建一个S3存储,使kops可以为我们的集群存储配置信息:
$ aws s3 mb s3://clusters.kubernetes.mydomain.com

现在,如果你只控制一个集群,我们应该在你的当前shell环境或者你的bash设置中声明一个变量:
$ export KOPS_STATE_STORE=s3://clusters.kubernetes.mydomain.com

酷!我们已经准备好配置和运行集群:
$ kops create cluster --zones=us-west-2c us-west-2c.kubernetes.mydomain.com

你也可以指定特殊的参数例如使用--network-cidr来设置子网参数,或者使用—vpc参数来设置你的AWS VPC。

使Kops开始工作

当一切都可以脚本化和自动化操作时,可以在不需要任何输入的情况下让Kops去执行这些任务。然而,如果你想去尝试自己做一些配置,通过"kops edit cluster $CLUSTER_NAME"命令,将会在你的电脑上打开Vim编辑器,允许你去编辑那些用于创建集群的.yml配置文件。同上,使用命令"kops edit ig --name=$CLUSTER_NAME"将会设置节点的分组,或者使用"using kops edit ig --name=$CLUSTER_NAME $ZONE"命令来设置主节点的分组。

你将会为现在的结果而感到高兴,因为现在不会使创建基础设施的费用超过你的预期,输入命令"kops update cluster",并且使用参数--yes将会执行任务并且创建已经配置好的集群。再花费些时间将你的DNS记录指向其他的DNS服务器后,Route53将会响应请求的结果。当输入命令"kubectl get pods"后,可以看到你的k8s集群基础设施已经运行起来。当你看到没有找到任何资源时,你可以准备开始去创建deployments/replica sets。

任何人如果第一次去尝试在GCP或者AWS创建k8s集群时,可以去看看这个文章 “Kubernetes the Hard Way”,能够获得一些关于在云中创建k8s集群的准确方法。这将会使一个新手去学习k8s中基于DNS的服务依赖或者基于Etcd的K/V存储。到那时,小小的失望和一时兴起之后会产生更多的兴趣去理解k8s,你可能会发现去使用kops的话可以简化流程,并尝试使用pod,服务配置和其他应用程序问题,而不是操作问题。而且 你会知道约翰布朗警长将会为你而来。当你们约翰布朗来到你那里时,如果您遇到任何问题或有疑问,请发送电子邮件至henry@runnable.com

原文链接:Kops: Kubernetes the Easy Way(翻译:李强

0 个评论

要回复文章请先登录注册