[轉帖]springboot+k8s+拋棄springcloud.eureka

springboot+k8s+拋棄springcloud.eureka

 
https://www.cnblogs.com/lori/p/12048743.html

 

springboot開發微服務框架通常使用springcloud全家桶,而整個項目都是容器化的,經過k8s進行編排,而k8s本身也有服務發現機制,因此咱們也能夠拋棄springcloud裏的eureka,而直接使用k8s本身的服務。
# 添加組件html

<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-ribbon</artifactId> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-kubernetes-ribbon</artifactId> <version>0.3.0.RELEASE</version> </dependency> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-kubernetes</artifactId> <version>0.3.0.RELEASE</version> </dependency>

注意點

  1. application.name與k8s的服務名相同,即feign裏的服務名稱
  2. 必需要開啓@EnableDiscoveryClient註解
  3. springcloud的配置中心須要和項目在一個namespace裏,即k8s的clusterIp不能跨namespace,若是是多個namespace須要用nodeport模式
  4. 使用feign時,它的服務一樣須要是同一個namespace下的
spring:  application:  name: hello-world-service  cloud:  config:  uri: http://config-server-service #集羣內部的端口,須要是一個namespace裏的,目前配置中心的端口爲80  fail-fast: true 

# 添加k8s裏用戶權限
默認狀況下,進行k8s服務調用裏會出現用戶權限的錯誤Message: Forbidden!Configured service account doesn't have access.這時須要爲k8s帳號角色添加權限node

kubectl create clusterrolebinding permissive-binding \ --clusterrole=cluster-admin \ --user=admin \ --user=kubelet \ --group=system:serviceaccounts
相關文章
相關標籤/搜索