Amazon web services 如何在不使用ELB服务的情况下使用kops在AWS上创建Kubernetes群集?
我只是在学习Kubernetes,我想避免在AWS上运行弹性负载平衡时花钱 下面是我用来安装Kubernetes的命令:Amazon web services 如何在不使用ELB服务的情况下使用kops在AWS上创建Kubernetes群集?,amazon-web-services,kubernetes,kops,Amazon Web Services,Kubernetes,Kops,我只是在学习Kubernetes,我想避免在AWS上运行弹性负载平衡时花钱 下面是我用来安装Kubernetes的命令: kops create cluster \ --cloud aws \ --name ${MY_KUBE_NAME}.k8s.local \ --state s3://${MY_KUBE_NAME} \ --master-count 1 \ --master-size ${MY_KUBE_MASTER_AWS_INSTANCE_SIZE
kops create cluster \
--cloud aws \
--name ${MY_KUBE_NAME}.k8s.local \
--state s3://${MY_KUBE_NAME} \
--master-count 1 \
--master-size ${MY_KUBE_MASTER_AWS_INSTANCE_SIZE} \
--master-volume-size ${MY_KUBE_MASTER_AWS_VOLUME_SIZE} \
--master-zones ${MY_KUBE_AWS_ZONE} \
--zones ${MY_KUBE_AWS_ZONE} \
--node-count 1 \
--node-size ${MY_KUBE_WORKER_AWS_INSTANCE_SIZE} \
--node-volume-size ${MY_KUBE_WORKER_AWS_VOLUME_SIZE}
运行该命令后,我可以看到通过Amazon的ELB服务创建了负载平衡器
一般来说,这一切对我来说都很好,然后我可以使用
kubectl
来监视和管理我的集群,并在它的帮助下安装Kubernetes Dashboard。但我不喜欢的一件事是,kops
使用ELB。这在一开始还可以,我使用负载平衡器提供的URL访问仪表板。现在我相信我可以避免使用ELB来减少我在AWS上的开支。您能告诉我如何在没有任何ELB的情况下使用kops create cluster
,但仍然能够从本地计算机连接到我的群集和仪表板吗 需要LB与主服务器上运行的kube apiserver通信。您可以通过从AWS控制台删除ELB并修改配置以直接与主机的公共或私有IP通信来绕过此问题。您可能必须在主机上进行连接,以便可以与新的IP地址通信。Kops创建了一个ELB,因为这更像是一种标准的“生产”准备实践类型,而且如果您有多个master,它也是兼容的。换言之,仍然建议使用ELB
就仪表板而言,通常,仪表板在AWS中显示为创建ELB的一个组件。您可以简单地删除服务,并且应该删除负载平衡器
$ kubectl delete svc <your-dashboard-svc>
$kubectl删除svc
现在,如果您想避免在服务上创建负载平衡器,只需使用ClusterIP或。然后,您可以使用类似于
kubectl proxy
的工具访问您的服务,但即使我根本没有将仪表板添加到Kubernetes,kops
仍然使用ELB来使用kops create cluster
命令创建集群。因此,在我的例子中,这不是创建ELB的仪表板。是kops做的。我刚刚编辑了我的问题以强调这一点。我想是elb从外部访问kube apiserver,添加了更多细节。是的,我理解kops
并不意味着在没有负载平衡器的情况下运行生产级集群。我需要对它进行黑客攻击,或者寻找另一种工具来解决这个问题。当我想使用kops
在单个主机上运行集群时,我偶然发现了一个类似的问题,结果是kops使用创建集群--node count=0
重置为其默认值2
。因此,我需要使用--dry run--output=yaml
将配置保存到一个文件中,并使用sed
命令编辑minSize
/maxSize
的值,然后才使用kops create-f
实际启动集群。