Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何在不使用ELB服务的情况下使用kops在AWS上创建Kubernetes群集?_Amazon Web Services_Kubernetes_Kops - Fatal编程技术网

Amazon web services 如何在不使用ELB服务的情况下使用kops在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

我只是在学习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} \
    --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
实际启动集群。