Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.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 Kubernetes,更改Kops群集的服务器_Amazon Web Services_Amazon Ec2_Kubernetes_Amazon Route53_Kops - Fatal编程技术网

Amazon web services Kubernetes,更改Kops群集的服务器

Amazon web services Kubernetes,更改Kops群集的服务器,amazon-web-services,amazon-ec2,kubernetes,amazon-route53,kops,Amazon Web Services,Amazon Ec2,Kubernetes,Amazon Route53,Kops,我在AWS上使用kops设置了kubernetes群集 现在,服务器url为。 此url在指向群集主实例的公共ip的路由53上配置 我想把这个换成。 我在路由器53上配置了与主IP相同的新url。但它只是用新的URL打开kubernetes仪表板。 我无法使用此url通过kubectl访问kubernetes服务器 这是我在使用新url更改kubeconfig文件并运行kubectl get pods命令时遇到的错误 无法连接到服务器:x509:证书对internal.old-server-ur

我在AWS上使用kops设置了kubernetes群集

现在,服务器url为。 此url在指向群集主实例的公共ip的路由53上配置

我想把这个换成。 我在路由器53上配置了与主IP相同的新url。但它只是用新的URL打开kubernetes仪表板。 我无法使用此url通过kubectl访问kubernetes服务器

这是我在使用新url更改kubeconfig文件并运行kubectl get pods命令时遇到的错误

无法连接到服务器:x509:证书对internal.old-server-url.com、old-server-url.com、kubernetes、kubernetes.default、kubernetes.default.svc、kubernetes.default.svc.cluster.local有效,而不是new-server-url.com

我必须更改什么配置,以便只更改kubernetes群集的服务器,并且我可以通过kube config/kubectl访问它

更新:
我可以通过kubectl命令使用-unsecure skip tls verify标志访问集群。但这是不安全的。我想知道如何在kops配置的集群中更改证书,并且对该场景的影响最小。

Kubectl使用kubeconfig文件。在该文件中,您需要将API服务器url从旧url更改为新url

编辑:

更改url的影响是,您需要使用新url作为“主机”重新生成kube apiserver证书,否则kubectl将因证书验证错误而失败

这是因为kubectl在调用k8s API服务器时验证kube apiserver提供的服务器证书

要在主节点中使用kubeadm kops内部使用kubeadm重新生成kube apiserver证书,可以运行以下命令:

rm /etc/kubernetes/pki/apiserver.*
kubeadm init phase certs all --apiserver-cert-extra-sans=https://new-server-url.com
docker rm -f `docker ps -q -f 'name=k8s_kube-apiserver*'`
systemctl restart kubelet
默认SAN为kubernetes、kubernetes.Default、kubernetes.Default.svc、kubernetes.Default.svc.cluster.local、10.96.0.1127.0.0.1


Kubectl使用kubeconfig文件。在该文件中,您需要将API服务器url从旧url更改为新url

编辑:

更改url的影响是,您需要使用新url作为“主机”重新生成kube apiserver证书,否则kubectl将因证书验证错误而失败

这是因为kubectl在调用k8s API服务器时验证kube apiserver提供的服务器证书

要在主节点中使用kubeadm kops内部使用kubeadm重新生成kube apiserver证书,可以运行以下命令:

rm /etc/kubernetes/pki/apiserver.*
kubeadm init phase certs all --apiserver-cert-extra-sans=https://new-server-url.com
docker rm -f `docker ps -q -f 'name=k8s_kube-apiserver*'`
systemctl restart kubelet
默认SAN为kubernetes、kubernetes.Default、kubernetes.Default.svc、kubernetes.Default.svc.cluster.local、10.96.0.1127.0.0.1


要仅解决此错误,请执行以下操作:

"Unable to connect to the server: x509: certificate is valid for internal.old-server-url.com, old-server-url.com, kubernetes, kubernetes.default, kubernetes.default.svc, kubernetes.default.svc.cluster.local, not new-server-url.com"
您可以将-unsecure skip tls verify标志与kubectl命令一起使用,如下所述:


这不建议用于生产环境。

要解决此错误,请执行以下操作:

"Unable to connect to the server: x509: certificate is valid for internal.old-server-url.com, old-server-url.com, kubernetes, kubernetes.default, kubernetes.default.svc, kubernetes.default.svc.cluster.local, not new-server-url.com"
您可以将-unsecure skip tls verify标志与kubectl命令一起使用,如下所述:


生产环境不建议这样做。

我已经这样做了,但在更改kubeconfig文件后,我无法访问群集。出现了什么错误?你能试着用冗余集kubectl-v=8-get nodesI运行kubectl命令吗?我不能运行你要求的命令。你能告诉我你想让我用倒逗号运行什么命令吗。另外,这也是我在使用新url更改kubeconfig文件并运行kubectl get pods命令时遇到的错误。无法连接到服务器:x509:证书对internal.old-server-url.com、old-server-url.com、kubernetes、kubernetes.default、kubernetes.default.svc、kubernetes.default.svc.cluster.local有效,而不是new-server-url.com抱歉我输入了一个错误你能尝试这个kubectl-v=8获取节点吗?需要在master上完成吗?我已经完成了,但是在更改kubeconfig文件后,我无法访问集群。错误是什么?你能试着用冗余集kubectl-v=8-get nodesI运行kubectl命令吗?我不能运行你要求的命令。你能告诉我你想让我用倒逗号运行什么命令吗。另外,这也是我在使用新url更改kubeconfig文件并运行kubectl get pods命令时遇到的错误。无法连接到服务器:x509:证书对internal.old-server-url.com、old-server-url.com、kubernetes、kubernetes.default、kubernetes.default.svc、kubernetes.default.svc.cluster.local有效,not new-server-url.com抱歉,我输入了一个错误。你能试试这个kubectl-v=8获取节点吗?是的,需要在MasterOK上完成,适用于开发环境,但不推荐用于生产环境environment@ArghyaSadhu你说得对。对开发环境来说可以,但不推荐用于生产环境environment@ArghyaSadhu你是对的。