在Siege / Lime / Rune / Siege Mussing下的Cubbertes

问题描述 投票:2回答:1

TL;DR:

通过terraform创建的Kubernetes pod没有/var/run/secrets文件夹,但是根据hello-minikube教程创建的pod有 - 为什么会这样,我该如何解决?

动机:我需要traefik能够与k8s集群交谈。

Details

我已经建立了一个带有minikube的本地Kubernetes集群,并设置了terraform以与该集群一起工作。

要设置traefik,你需要创建一个IngressDeployment,它们是not yet supported by terraform。基于该问题中发布的解决方法,我使用更简单的模块通过terraform执行yaml文件:

# A tf-module that can create Kubernetes resources from YAML file descriptions.
variable "name" {}
variable "file_name" { }
resource "null_resource" "kubernetes_resource" {
  triggers {
    configuration = "${var.file_name}"
  }
  provisioner "local-exec" {
    command = "kubectl apply -f ${var.file_name}"
  }
}

以这种方式创建的资源在k8s仪表板中正确显示。

但是,入口控制器的pod记录:

time="2017-12-30T13:49:10Z" 
level=error 
msg="Error starting provider *kubernetes.Provider: failed to create in-cluster
    configuration: open /var/run/secrets/kubernetes.io/serviceaccount/token:
    no such file or directory" 

(为了便于阅读,增加了换行符)

/bin/bashing进入豆荚,我发现它们都没有路径/var/run/secrets,除了来自hello-minikubeminikube tutorial豆荚,它是用两个kubectl命令创建的:

$ kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.4 --port=8080
$ kubectl expose deployment hello-minikube --type=NodePort

与terraform问题中的脚本相比,我删除了像kubectl这样的--certificate-authority=${var.cluster_ca_certificate}参数,但是再次,我在设置hello-minikube时也没有提供这个,原始脚本不能正常工作,因为我无法想象如何从terazform中的~/.kube/config访问提供商详细信息。

我试图找出hello-minikube是否做了一些奇特的事,但我找不到它的源代码。

我是否必须做一些特定的事情才能使令牌可用?根据traefic issue 611的说法,InCluster配置应该是自动化的,但是目前看来我已经卡住了。

Versions

主机系统是Windows 10机器

> minikube version
minikube version: v0.24.1

> kubectl version
Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.0", GitCommit:"925c127ec6b946659ad0fd596fa959be43f0cc05", GitTreeState:"clean", BuildDate:"2017-12-15T21:07:38Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"windows/amd64"}
Server Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.0", GitCommit:"0b9efaeb34a2fc51ff8e4d34ad9bc6375459c4a4", GitTreeState:"clean", BuildDate:"2017-11-29T22:43:34Z", GoVersion:"go1.9.1", Compiler:"gc", Platform:"linux/amd64"}

Related

有一些相关的问题和github问题,但他们也没有帮助我解决问题。

kubernetes terraform minikube traefik
1个回答
© www.soinside.com 2019 - 2024. All rights reserved.