Questions tagged «kubernetes»

KUBERNETES问题必须与开发者相关。Kubernetes是一个开放源代码平台,旨在跨多个主机和/或云自动执行应用程序容器的部署,扩展和操作。有关配置群集的问题,请访问https://serverfault.com。


9
头盔:客户端和服务器之间的版本不兼容
运行后helm list,出现以下错误: 错误:版本不兼容的客户端[v2.9.0]服务器[v2.8.2] 我做了一个头盔初始化,以安装兼容的分till版本“警告:群集中已经安装了Tiller。(使用--client-only禁止显示此消息,或使用--upgrade将Tiller升级到当前版本。”)。 有指针吗?

6
Kubernetes中的Replication Controller VS部署
我想知道复制控制器和Kubernetes(1.2)中的Deployment有什么区别。浏览入门文档(http://kubernetes.io/docs/hellonode/),我已经创建了一个部署-但它没有显示在Web UI上。 当我从Web UI创建应用程序时-它们被创建为复制控制器。但是在功能上,它们看起来非常相似(它们既管理pod并提供服务)。 所以-有什么区别,什么时候应该使用它们?

3
Kubernetes Secrets与ConfigMaps
一直在使用Kubernetes机密。现在,我们还有ConfigMaps。 首选的转发方式是什么-机密或配置映射? PS经过几次迭代,我们稳定在以下规则: configMap是按解决方案域划分的(可以在该域中的微服务之间共享,但最终是单一用途的配置条目) 机密在解决方案域之间共享,通常代表第三方系统或数据库
71 kubernetes 

9
Kubernetes容器上的ImagePullBackOff状态是什么意思?
我正在尝试在本地运行我的第一个kubernetes pod。我运行了以下命令(从此处开始): export ARCH=amd64 docker run -d \ --volume=/:/rootfs:ro \ --volume=/sys:/sys:ro \ --volume=/var/lib/docker/:/var/lib/docker:rw \ --volume=/var/lib/kubelet/:/var/lib/kubelet:rw \ --volume=/var/run:/var/run:rw \ --net=host \ --pid=host \ --privileged \ gcr.io/google_containers/hyperkube-${ARCH}:${K8S_VERSION} \ /hyperkube kubelet \ --containerized \ --hostname-override=127.0.0.1 \ --api-servers=http://localhost:8080 \ --config=/etc/kubernetes/manifests \ --cluster-dns=10.0.0.10 \ --cluster-domain=cluster.local \ --allow-privileged --v=2 然后,我尝试运行以下命令: kubectl create -f ./run-aii.yaml 运行aii.yaml: apiVersion: …

18
Kubernetes创建部署意外SchemaError
我正在关注该教程(https://www.baeldung.com/spring-boot-minikube),我想在yaml文件(simple-crud-dpl.yaml)中创建Kubernetes部署: apiVersion: apps/v1 kind: Deployment metadata: name: simple-crud spec: selector: matchLabels: app: simple-crud replicas: 3 template: metadata: labels: app: simple-crud spec: containers: - name: simple-crud image: simple-crud:latest imagePullPolicy: Never ports: - containerPort: 8080 但是当我跑步时kubectl create -f simple-crud-dpl.yaml我得到了: error: SchemaError(io.k8s.api.autoscaling.v2beta2.MetricTarget): invalid object doesn't have additional properties 我正在使用kubectl的最新版本: kubectl version Client Version: …

4
在版本“ extensions / v1beta1”中没有与“部署”类型匹配的项
我在部署mojaloop .kubernetes时遇到问题,并显示错误日志,例如 我已经检查了我的Kubernetes版本,而1.16是该版本,那么我该如何解决API版本的这种问题。从调查中发现Kubernetes不支持apps / v1beta2,apps / v1beta1,所以我如何使Kubernetes成为使用当前未弃用的版本或受支持的版本我是Kubernetes的新手,任何支持我的人我都很高兴 错误:验证失败:[无法识别“”:版本“ apps / v1beta2”中没有与类型“ Deployment”匹配,无法识别“”:版本“ extensions / v1beta1”中没有与类型“ Deployment”匹配,无法识别“”:版本“ apps / v1beta2”中没有匹配类型“ StatefulSet”,无法识别“”:版本“ apps / v1beta1”中没有匹配类型“ StatefulSet”]
27 kubernetes 

1
Airflow Scheduler无法以kubernetes执行器启动
我正在使用 https://github.com/helm/charts/tree/master/stable/airflow掌舵图并puckle/docker-airflow使用安装的Kubernetes构建v1.10.8 图像并在掌舵图中使用该图像,但是我一直在获取 File "/usr/local/bin/airflow", line 37, in <module> args.func(args) File "/usr/local/lib/python3.7/site-packages/airflow/bin/cli.py", line 1140, in initdb db.initdb(settings.RBAC) File "/usr/local/lib/python3.7/site-packages/airflow/utils/db.py", line 332, in initdb dagbag = models.DagBag() File "/usr/local/lib/python3.7/site-packages/airflow/models/dagbag.py", line 95, in __init__ executor = get_default_executor() File "/usr/local/lib/python3.7/site-packages/airflow/executors/__init__.py", line 48, in get_default_executor DEFAULT_EXECUTOR = _get_executor(executor_name) File "/usr/local/lib/python3.7/site-packages/airflow/executors/__init__.py", line 87, in _get_executor …

1
使用AWS Java SDK v2从AWS EKS获取身份验证令牌
如何使用AWS Java SDK v2从AWS EKS获取Kubernetes身份验证令牌?然后可以使用Kubernetes SDK使用身份验证令牌对Kubernetes进行身份验证。换句话说,我想从EKS获取身份验证令牌,以用于Kubernetes的身份验证,这样我就不必创建“ kube config”。 实际上,我有一个使用AWS Java SDK v1(而非v2)的解决方案,它在以下未解决的问题中查看了代码示例。这里还有一个Python代码示例,但AWS Java SDK v2并没有成功。我尝试使用AWS Java SDK v2做到这一点: public static String getAuthenticationToken(AwsCredentialsProvider awsAuth, Region awsRegion, String clusterName) { try { SdkHttpFullRequest requestToSign = SdkHttpFullRequest .builder() .method(SdkHttpMethod.GET) .uri(new URI("https", String.format("sts.%s.amazonaws.com", awsRegion.id()), null, null)) .appendHeader("x-k8s-aws-id", clusterName) .appendRawQueryParameter("Action", "GetCallerIdentity") .appendRawQueryParameter("Version", "2011-06-15") .build(); ZonedDateTime …

2
工作者开始失败CSINodeIfo:更新CSINode批注时出错
2个月前,我创建了一个Kubernetes集群1个主节点和2个工作节点,今天一个工作节点开始出现故障,我不知道为什么。我认为我的工人没有发生任何异常情况。 我使用法兰绒和kubeadm创建了集群,并且运行良好。 如果我描述节点: tommy@bxybackend:~$ kubectl describe node bxybackend-node01 Name: bxybackend-node01 Roles: <none> Labels: beta.kubernetes.io/arch=amd64 beta.kubernetes.io/os=linux kubernetes.io/arch=amd64 kubernetes.io/hostname=bxybackend-node01 kubernetes.io/os=linux Annotations: flannel.alpha.coreos.com/backend-data: {"VtepMAC":"06:ca:97:82:50:10"} flannel.alpha.coreos.com/backend-type: vxlan flannel.alpha.coreos.com/kube-subnet-manager: true flannel.alpha.coreos.com/public-ip: 10.168.10.4 kubeadm.alpha.kubernetes.io/cri-socket: /var/run/dockershim.sock node.alpha.kubernetes.io/ttl: 0 volumes.kubernetes.io/controller-managed-attach-detach: true CreationTimestamp: Sun, 03 Nov 2019 09:41:48 -0600 Taints: node.kubernetes.io/not-ready:NoExecute node.kubernetes.io/not-ready:NoSchedule Unschedulable: false Conditions: Type Status LastHeartbeatTime LastTransitionTime …


1
在单个YAML文件中直接对多种类型的Kubernetes API使用client-go进行kubectl apply
我正在使用https://github.com/kubernetes/client-go并且一切正常。 我有一个官方Kubernetes仪表板的清单(YAML):https ://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta4/aio/deploy/recommended.yaml 我想kubectl apply使用client-go 模仿Go代码中的清单。 我了解我需要将YAML字节进行一些(非)编组为程序包中定义的正确API类型:https : //github.com/kubernetes/api 我已成功将Create单个API类型编辑到集群中,但是如何对包含不同类型列表的清单执行此操作?是否有kind: List*支持这些不同类型的资源? 我当前的解决方法是使用csplit-作为分隔符来拆分YAML文件 csplit /path/to/recommended.yaml /---/ '{*}' --prefix='dashboard.' --suffix-format='%03d.yaml' 接下来,我遍历创建的新(14)部分,读取它们的字节,打开UniversalDeserializer的解码器返回的对象的类型,并使用我的k8s客户端集调用正确的API方法。 我希望通过编程方式来对集群中仪表板的任何新版本进行更新。我还将需要对Metrics Server和许多其他资源执行此操作。另一种(可能更简单)的方法是将安装了kubectl的代码运送到容器映像中,然后直接调用kubectl apply -f -; 但这意味着我还需要将kube配置写入磁盘或内联传递它,以便kubectl可以使用它。 我发现此问题很有帮助:https : //github.com/kubernetes/client-go/issues/193 解码器位于此处:https : //github.com/kubernetes/apimachinery/tree/master/pkg/runtime/序列化器 它在此处的client-go中公开:https : //github.com/kubernetes/client-go/blob/master/kubernetes/scheme/register.go#L69 我还看了kubectl使用的RunConvert方法:https : //github.com/kubernetes/kubernetes/blob/master/pkg/kubectl/cmd/convert/convert.go#L139并假定我可以提供我自己的genericclioptions.IOStreams以获取输出? 看起来RunConvert在弃用路径上 我还查看了其他标记为[client-go]的问题,但大多数问题都使用旧示例或将YAML文件与单个 kind定义,并且此后API发生了变化。 编辑:因为我需要对多个群集执行此操作,并且正在以编程方式创建群集(AWS EKS API + CloudFormation / eksctl),所以我想最大程度地减少ServiceAccount跨多个AWS账户跨多个群集上下文创建s 的开销。理想情况下,创建我的客户端集所涉及的唯一身份验证步骤是使用aws-iam-authenticator使用群集数据(名称,区域,CA证书等)获取令牌。暂时还没有发布aws-iam-authenticator,但是的内容是master允许允许使用第三方角色跨帐户角色和要传递的外部ID。IMO,这比使用ServiceAccount(和IRSA),因为还有其他AWS服务,应用程序(创建后端并将API应用于这些集群的后端API)需要与之交互。 编辑:我最近发现https://github.com/ericchiang/k8s。在高层上,它肯定比client-go更容易使用,但不支持此行为。

1
将Visual Studio调试器与在Kubernetes中运行的ASP.NET Core Web应用一起使用吗?
我们的团队希望能够针对内部Kubernetes集群的ASP.NET应用程序的已部署实例运行Visual Studio调试器。我需要弄清楚如何完成拼图,但是我对Visual Studio 2019不太熟悉。 Docker映像使用官方的.NET Core映像进行编译,并且/ vsdbg填充了最新版本(不支持--attach)。 Visual Studio可与我的Docker桌面一起使用。 Kubectl已正确配置。我可以使用Docker Desktop随附的kubernetes集群或我们内部的kubernetes集群进行测试。 Azure当前不是一种选择。我从文档中了解到,这就是Microsoft希望我执行的操作。 我应该如何配置Visual Studio才能做到这一点?

5
http请求的kubernetes / elb超时时间是多少?
我有一个Java API(接受打包到docker映像中的HTTPS request_,然后在EC2之上使用k8s集群进行部署。主EC2在前面有一个ELB。 我可以向ELB发出curl POST请求,以命中该Java API。 有时,即使我看到kube日志,处理也成功了,但我的curl请求却永远等待着响应。 对于40分钟左右的较大请求,会发生这种情况,而25分钟的请求可以正常响应。 您认为超时可能在哪里?我应该看任何特定的配置参数? 客户端(curl)-> ELB-> k8s->运行Java api映像的pod 我认为这与ELB相关(我未设置IdleTimeout),但是文档说默认值为60s,尽管我可以在20min请求中获得响应“ ConnectionSettings”:{“ IdleTimeout”}

2
Kubernetes仪表板-登录后出现未知服务器错误
我已经通过Kubespray成功部署了Kubernetes,一切似乎都工作正常。我可以通过kubectl访问集群,并列出节点,pod,服务,机密等。也可以应用新资源,并且仪表板端点可以获取我的仪表板登录页面。 我已经使用不同服务帐户的令牌登录(默认,kubernetes-dashboard,kubernetes-admin等)。每次登录时,我都会看到与kubespray仪表板中所述的弹出窗口相同的弹出窗口,例如,警告禁止弹出窗口。 因此,如上所述,我为默认服务帐户应用了clusterrolebinding。现在使用默认帐户令牌登录时,我只会得到一个 Unknown Server Error (404) the server could not find the requested resource Redirecting to previous state in 3 seconds... 框,此后我将重定向到登录页面。如果我通过连接到仪表板,则其行为相同kubectl proxy。访问是通过公共群集IP进行的HTTPS,也是通过代理进行的HTTP 我正在使用Kubernetes 1.16.2和最新的Kubespray主提交18d19d9e 编辑:我销毁并重新配置了群集,以获取新的Kubespray设置的实例,以使所有步骤都具有确定性,并添加了更多信息... kubectl -n kube-system logs --follow kubernetes-dashboard-556b9ff8f8-jbmgg -- 在尝试登录时给我 2019/12/16 12:35:02 [2019-12-16T12:35:02Z] Incoming HTTP/2.0 GET /api/v1/csrftoken/login request from 10.233.74.0:57458: { contents hidden } 2019/12/16 …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.