我在AWS上使用kops创建了一个Kubernetes集群,并且可以通过kubectl本地计算机成功管理它.
我可以查看当前配置kubectl config view以及直接访问存储状态~/.kube/config,例如:
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: REDACTED
server: https://api.{CLUSTER_NAME}
name: {CLUSTER_NAME}
contexts:
- context:
cluster: {CLUSTER_NAME}
user: {CLUSTER_NAME}
name: {CLUSTER_NAME}
current-context: {CLUSTER_NAME}
kind: Config
preferences: {}
users:
- name: {CLUSTER_NAME}
user:
client-certificate-data: REDACTED
client-key-data: REDACTED
password: REDACTED
username: admin
- name: {CLUSTER_NAME}-basic-auth
user:
password: REDACTED
username: admin
Run Code Online (Sandbox Code Playgroud)
我需要让其他用户也能管理.本用户指南介绍了如何在其他用户计算机上定义这些用户指南,但未描述如何在群集本身内实际创建用户凭据.你怎么做到这一点?
另外,分享是否安全cluster.certificate-authority-data?
我使用kops工具在AWS上创建了一个Kubernetes集群.我需要获取其证书颁发机构证书和密钥,但如何通过kops导出这些文件?
我已经尝试了以下内容,但它没有说秘密不支持yaml输出格式:
kops --state s3://example.com get secret ca -o yaml
Run Code Online (Sandbox Code Playgroud)
我也想知道如何指定要解决的集群,因为kops只使用默认的kubectl上下文.我正在使用kops版本1.6.2.
我遇到了AWS提供的KOPS以及他们的其他Kubernetes服务EKS.这两种产品都允许安装Kubernetes集群.但是,我想知道为什么人们会选择EKS超过KOPS,反之亦然,如果之前没有运行任何一个.
这个问题并没有问哪个更好,而是要求进行比较.
我在Kubernetes集群上访问NodePort服务时遇到困难.
目标
设置ALB Ingress控制器,以便我可以使用websockets和http/2
根据该控制器的要求设置NodePort服务
采取的步骤
以前在AWS eu-west-1上创建了Kops(版本1.6.2)集群.添加了nginx入口的kops插件以及Kube-lego.ELB入口工作正常.
使用该项目指定的IAM配置文件,使用自定义AWS密钥设置ALB Ingress Controller.
使用kubectl replace --force将服务类型从LoadBalancer更改为NodePort
> kubectl describe svc my-nodeport-service
Name: my-node-port-service
Namespace: default
Labels: <none>
Selector: service=my-selector
Type: NodePort
IP: 100.71.211.249
Port: <unset> 80/TCP
NodePort: <unset> 30176/TCP
Endpoints: 100.96.2.11:3000
Session Affinity: None
Events: <none>
> kubectl describe pods my-nodeport-pod
Name: my-nodeport-pod
Node: <ip>.eu-west-1.compute.internal/<ip>
Labels: service=my-selector
Status: Running
IP: 100.96.2.11
Containers:
update-center:
Port: 3000/TCP
Ready: True
Restart Count: 0
(ssh into node)
$ sudo netstat -nap | grep 30176
tcp6 0 …Run Code Online (Sandbox Code Playgroud) 我使用kops设置我的kubernetes集群,我是从本地机器上完成的.所以我的.kube目录存储在我的本地机器上,但我设置kops了状态存储s3.
我现在正在设置我的CI服务器,我想kubectl从该框中运行我的命令.如何将现有状态导入该服务器?
我们在AWS上的Kubernetes(1.9.3)上运行了一个Web API应用程序(使用KOPS设置).该应用程序是一个部署,由服务(类型:LoadBalancer)表示,该服务实际上是AWS上的ELB(v1).这通常有效 - 除了一些数据包(HTTP请求的片段)在客户端< - > app容器之间的某处"延迟".(在终止于ELB的HTTP和HTTPS中).
从节点方面:
(注意:服务器端的几乎所有数据包都会重复3次)
我们使用keep-alive,因此tcp套接字是打开的,请求到达并返回相当快.然后问题发生了:
从客户端:
我从我的计算机上运行一些流量,在客户端记录它以查看问题的另一端,但不是100%确定它代表真正的客户端.
这只发生在负载下.
根据我的理解,这是介于ELB和Kube-Proxy之间的某个地方,但我很无能为力,急需帮助.
这是Kube-Proxy运行的参数:
Commands: /bin/sh -c mkfifo /tmp/pipe; (tee -a /var/log/kube-proxy.log < /tmp/pipe & ) ; exec /usr/local/bin/kube-proxy --cluster-cidr=100.96.0.0/11 --conntrack-max-per-core=131072 --hostname-override=ip-10-176-111-91.ec2.internal --kubeconfig=/var/lib/kube-proxy/kubeconfig --master=https://api.internal.prd.k8s.local --oom-score-adj=-998 --resource-container="" --v=2 > /tmp/pipe 2>&1
我们使用Calico作为CNI:
到目前为止,我已经尝试过:
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"- 问题仍然存在.E0801 04:10:57.269475 1 reflector.go:205] k8s.io/kubernetes/pkg/client/informers/informers_generated/internalversion/factory.go:85:无法列出*core.Endpoints:获取https:// api. internal.prd.k8s.local/api/v1/endpoints?limit = 500&resourceVersion = 0 …
我尝试使用创建s3桶
aws s3api create-bucket —bucket kubernetes-aws-wthamira-io
它会犯这个错误
调用CreateBucket操作时发生错误(IllegalLocationConstraintException):未指定的位置约束与此请求发送到的区域特定端点不兼容.
我使用aws configure区域设置并将区域设置为eu-west-1
An error occurred (IllegalLocationConstraintException) when calling
the CreateBucket operation: The unspecified location constraint is
incompatible for the region specific endpoint this request was sent
to.
Run Code Online (Sandbox Code Playgroud)
但是犯同样的错误.我怎么解决这个问题.
我使用osx终端连接aws
我在AWS上创建了一个kubernetes集群,如下面的说明所示.我所有的Ubuntu OS类型的主节点和工作节点.
https://jee-appy.blogspot.in/2017/10/setup-kubernetes-cluster-kops-aws.html
我知道如何使用集群更新来增加或减少集群中的节点数量,kubernetes为我们提供了一个新节点,
但是我想知道,是否有可能将我的外部aws实例(例如:具有相同操作系统的实例,如ubuntu)连接到我现有的kops集群?
我正在按照 kOps 教程在 AWS 上设置集群。我能够创建一个集群
kops create cluster
kops update cluster --yes
Run Code Online (Sandbox Code Playgroud)
但是,在验证我的集群是否正确设置时
kops validate cluster
Run Code Online (Sandbox Code Playgroud)
我陷入了错误:
unexpected error during validation: error listing nodes: Unauthorized
Run Code Online (Sandbox Code Playgroud)
在许多其他 kOps 操作中也会发生同样的错误。
我检查了我的 kOps/K8s 版本,它是 1.19:
> kops version
Version 1.19.1 (git-8589b4d157a9cb05c54e320c77b0724c4dd094b2)
> kubectl version
Client Version: version.Info{Major:"1", Minor:"20" ...
Server Version: version.Info{Major:"1", Minor:"19" ...
Run Code Online (Sandbox Code Playgroud)
我怎样才能解决这个问题?
我是 Kubernetes 的新手。我正在使用 Kops 在 AWS 上部署我的 Kubernetes 应用程序。我已经在 AWS 上注册了我的域,还创建了一个托管区域并将其附加到我的默认 VPC。
通过 kops 创建我的 Kubernetes 集群成功。但是,当我尝试使用 验证我的集群时kops validate cluster,它失败并显示以下错误:
无法解析 Kubernetes 集群 API URL dns:在 149.142.35.46:53 上查找 api.ucla.dt-api-k8s.com:没有这样的主机
我试过调试这个错误但失败了。你能帮我一下吗?我现在非常沮丧。
kops ×10
kubernetes ×10
kubectl ×2
amazon-ec2 ×1
amazon-eks ×1
amazon-elb ×1
amazon-s3 ×1
cloud ×1
kube-proxy ×1
nlb ×1
ssl ×1