第一次尝试.minikube v1.7.3 和 spring-cloud-kubernetes 1.0.x
永远不会刷新configmap ,原因是
注入进environment的propertySource是BootstrapPropertySource类型,既不是CompositePropertySource的实例,也不是ConfigMapPropertySource的实例
第二次尝试.minikube v1.1.1 和 spring-cloud-kubernetes 1.1.x
失败
第三次尝试.minikube v1.7.3 和 spring-cloud-kubernetes 1.1.x
运行报错
User "system:serviceaccount:default:default" cannot get resource "configmaps" in API group "" in the namespace "default".
猜测是权限问题,官方demo文档也提到过,但是没有给出相关连接,只是随口一提,
找了很久,在spring-cloud-kubernetes\docs\src\main\asciidoc\security-service-accounts.adoc找到配置的关键
----
kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
namespace: YOUR-NAME-SPACE
name: namespace-reader
rules:
- apiGroups: ["", "extensions", "apps"]
resources: ["configmaps", "pods", "services", "endpoints", "secrets"]
verbs: ["get", "list", "watch"]
---
kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: namespace-reader-binding
namespace: YOUR-NAME-SPACE
subjects:
- kind: ServiceAccount
name: default
apiGroup: ""
roleRef:
kind: Role
name: namespace-reader
apiGroup: ""
配置了这个之后就ok了
具体的事情经过可以从git issue找到答案
sping-cloud-kubernetes compatibility with kubernetes version · Issue #529 · spring-cloud/spring-cloud-kubernetes · GitHub