Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在google cloud kubernates中部署docker映像_Java_Spring Boot_Docker_Microservices_Google Kubernetes Engine - Fatal编程技术网

Java 如何在google cloud kubernates中部署docker映像

Java 如何在google cloud kubernates中部署docker映像,java,spring-boot,docker,microservices,google-kubernetes-engine,Java,Spring Boot,Docker,Microservices,Google Kubernetes Engine,我有几项微服务: APIGateway:使用zuul代理的所有请求的公共网关 ConfigService:类似于属性文件的配置服务器 注册服务:带有eureka服务器的服务注册 主页服务:1个向eureka注册的服务和配置服务 产品服务:1项在eureka注册的服务和配置服务 当我按本地顺序运行时: RegistryService->ConfigService然后是所有服务APIGateway、HomePageService、ProductService,其工作正常 现在,我通过在docker容

我有几项微服务:

APIGateway:使用zuul代理的所有请求的公共网关

ConfigService:类似于属性文件的配置服务器

注册服务:带有eureka服务器的服务注册

主页服务:1个向eureka注册的服务和配置服务

产品服务:1项在eureka注册的服务和配置服务

当我按本地顺序运行时: RegistryService->ConfigService然后是所有服务APIGateway、HomePageService、ProductService,其工作正常

现在,我通过在docker容器中提供config和run来创建docker映像,并将其推送到GCR。 我已经为谷歌云创建了一个帐户(免费1年),并且能够在repo中看到图像

一切正常,但如何在GKE中部署这些映像。我单独运行并部署,但没有链接。部署这些服务的方法是什么?

kubectl run service-registry --image=gcr.io/salesstock/service-registry:v1 --port=7002
kubectl expose deployment service-registry --name=service-registry  --type=LoadBalancer --port=7002 --target-port=7002 
我尝试了一些东西并分享了一些代码

注册表服务属性:

spring:
  profiles: 
    active: dev
  application:
    name: registry-service       
server:
  port: 7002      
eureka:
  instance:
    hostname: localhost
    port: 7002
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/     

#======docker======
---    
spring:
  profiles: docker

eureka:
  instance:
    hostname: 192.168.99.100
    port: 7002
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/
spring: 
  profiles:
    active: dev
  application:
    name: api-gateway
  cloud:
    config:
      fail-fast: true
      discovery:
        enabled: true
        service-id: config-service
#      uri: http://localhost:8888    
server:
  port: 7001      
eureka:
  instance:
    hostname: localhost
    port: 7002
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/          

#======docker======
---    
spring:
  profiles: docker
  cloud:
    config:
      fail-fast: true
      discovery:
        enabled: true
        service-id: config-service
#       uri: http://192.168.99.100:8888

eureka:
  instance:
    hostname: 192.168.99.100
    port: 7002
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/         
spring:
  profiles:
    active: dev
  application:
    name: config-service
  cloud:
    config:
      server:
        git:
          uri:  git url 
          search-paths: ConfigFiles
server:
  port: 8888
management:
  security:
    enabled: false

eureka:
  instance:
    hostname: service-registry
    port: 7002
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/              

#======docker======
---    
spring:
  profiles: docker
  cloud:
    config:
      server:
        git:
          uri: git repo
          search-paths: ConfigFiles          
eureka:
  instance:
    hostname: 192.168.99.100
    port: 7002
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/     
spring:
  profiles:
    active: dev
  application:
    name: homepage-service
  cloud:
    config:
      fail-fast: true
      discovery:
        enabled: true
        service-id: config-service
#      uri: http://localhost:8888

server:
  port: 7003

#for dynamic port
#server:
#  port: 0   
feign:
  client:
    config:
      default:
        connectTimeout: 160000000
        readTimeout: 160000000
management:
  security:
    enabled: false
##  endpoints:
##    web:
##      exposure:
##        include: *
eureka:
  instance:
    hostname: localhost
    port: 7002
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/                    

#======docker======
---    
spring:
  profiles: docker
  cloud:
    config:
      fail-fast: true
      discovery:
        enabled: true
        service-id: config-service
#       uri: http://192.168.99.100:8888

eureka:
  instance:
    hostname: 192.168.99.100
    port: 7002
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/    
APIGateway属性:

spring:
  profiles: 
    active: dev
  application:
    name: registry-service       
server:
  port: 7002      
eureka:
  instance:
    hostname: localhost
    port: 7002
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/     

#======docker======
---    
spring:
  profiles: docker

eureka:
  instance:
    hostname: 192.168.99.100
    port: 7002
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/
spring: 
  profiles:
    active: dev
  application:
    name: api-gateway
  cloud:
    config:
      fail-fast: true
      discovery:
        enabled: true
        service-id: config-service
#      uri: http://localhost:8888    
server:
  port: 7001      
eureka:
  instance:
    hostname: localhost
    port: 7002
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/          

#======docker======
---    
spring:
  profiles: docker
  cloud:
    config:
      fail-fast: true
      discovery:
        enabled: true
        service-id: config-service
#       uri: http://192.168.99.100:8888

eureka:
  instance:
    hostname: 192.168.99.100
    port: 7002
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/         
spring:
  profiles:
    active: dev
  application:
    name: config-service
  cloud:
    config:
      server:
        git:
          uri:  git url 
          search-paths: ConfigFiles
server:
  port: 8888
management:
  security:
    enabled: false

eureka:
  instance:
    hostname: service-registry
    port: 7002
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/              

#======docker======
---    
spring:
  profiles: docker
  cloud:
    config:
      server:
        git:
          uri: git repo
          search-paths: ConfigFiles          
eureka:
  instance:
    hostname: 192.168.99.100
    port: 7002
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/     
spring:
  profiles:
    active: dev
  application:
    name: homepage-service
  cloud:
    config:
      fail-fast: true
      discovery:
        enabled: true
        service-id: config-service
#      uri: http://localhost:8888

server:
  port: 7003

#for dynamic port
#server:
#  port: 0   
feign:
  client:
    config:
      default:
        connectTimeout: 160000000
        readTimeout: 160000000
management:
  security:
    enabled: false
##  endpoints:
##    web:
##      exposure:
##        include: *
eureka:
  instance:
    hostname: localhost
    port: 7002
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/                    

#======docker======
---    
spring:
  profiles: docker
  cloud:
    config:
      fail-fast: true
      discovery:
        enabled: true
        service-id: config-service
#       uri: http://192.168.99.100:8888

eureka:
  instance:
    hostname: 192.168.99.100
    port: 7002
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/    
配置服务属性:

spring:
  profiles: 
    active: dev
  application:
    name: registry-service       
server:
  port: 7002      
eureka:
  instance:
    hostname: localhost
    port: 7002
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/     

#======docker======
---    
spring:
  profiles: docker

eureka:
  instance:
    hostname: 192.168.99.100
    port: 7002
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/
spring: 
  profiles:
    active: dev
  application:
    name: api-gateway
  cloud:
    config:
      fail-fast: true
      discovery:
        enabled: true
        service-id: config-service
#      uri: http://localhost:8888    
server:
  port: 7001      
eureka:
  instance:
    hostname: localhost
    port: 7002
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/          

#======docker======
---    
spring:
  profiles: docker
  cloud:
    config:
      fail-fast: true
      discovery:
        enabled: true
        service-id: config-service
#       uri: http://192.168.99.100:8888

eureka:
  instance:
    hostname: 192.168.99.100
    port: 7002
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/         
spring:
  profiles:
    active: dev
  application:
    name: config-service
  cloud:
    config:
      server:
        git:
          uri:  git url 
          search-paths: ConfigFiles
server:
  port: 8888
management:
  security:
    enabled: false

eureka:
  instance:
    hostname: service-registry
    port: 7002
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/              

#======docker======
---    
spring:
  profiles: docker
  cloud:
    config:
      server:
        git:
          uri: git repo
          search-paths: ConfigFiles          
eureka:
  instance:
    hostname: 192.168.99.100
    port: 7002
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/     
spring:
  profiles:
    active: dev
  application:
    name: homepage-service
  cloud:
    config:
      fail-fast: true
      discovery:
        enabled: true
        service-id: config-service
#      uri: http://localhost:8888

server:
  port: 7003

#for dynamic port
#server:
#  port: 0   
feign:
  client:
    config:
      default:
        connectTimeout: 160000000
        readTimeout: 160000000
management:
  security:
    enabled: false
##  endpoints:
##    web:
##      exposure:
##        include: *
eureka:
  instance:
    hostname: localhost
    port: 7002
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/                    

#======docker======
---    
spring:
  profiles: docker
  cloud:
    config:
      fail-fast: true
      discovery:
        enabled: true
        service-id: config-service
#       uri: http://192.168.99.100:8888

eureka:
  instance:
    hostname: 192.168.99.100
    port: 7002
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/    
HomePageService属性:

spring:
  profiles: 
    active: dev
  application:
    name: registry-service       
server:
  port: 7002      
eureka:
  instance:
    hostname: localhost
    port: 7002
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/     

#======docker======
---    
spring:
  profiles: docker

eureka:
  instance:
    hostname: 192.168.99.100
    port: 7002
  client:
    register-with-eureka: false
    fetch-registry: false
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/
spring: 
  profiles:
    active: dev
  application:
    name: api-gateway
  cloud:
    config:
      fail-fast: true
      discovery:
        enabled: true
        service-id: config-service
#      uri: http://localhost:8888    
server:
  port: 7001      
eureka:
  instance:
    hostname: localhost
    port: 7002
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/          

#======docker======
---    
spring:
  profiles: docker
  cloud:
    config:
      fail-fast: true
      discovery:
        enabled: true
        service-id: config-service
#       uri: http://192.168.99.100:8888

eureka:
  instance:
    hostname: 192.168.99.100
    port: 7002
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/         
spring:
  profiles:
    active: dev
  application:
    name: config-service
  cloud:
    config:
      server:
        git:
          uri:  git url 
          search-paths: ConfigFiles
server:
  port: 8888
management:
  security:
    enabled: false

eureka:
  instance:
    hostname: service-registry
    port: 7002
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/              

#======docker======
---    
spring:
  profiles: docker
  cloud:
    config:
      server:
        git:
          uri: git repo
          search-paths: ConfigFiles          
eureka:
  instance:
    hostname: 192.168.99.100
    port: 7002
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/     
spring:
  profiles:
    active: dev
  application:
    name: homepage-service
  cloud:
    config:
      fail-fast: true
      discovery:
        enabled: true
        service-id: config-service
#      uri: http://localhost:8888

server:
  port: 7003

#for dynamic port
#server:
#  port: 0   
feign:
  client:
    config:
      default:
        connectTimeout: 160000000
        readTimeout: 160000000
management:
  security:
    enabled: false
##  endpoints:
##    web:
##      exposure:
##        include: *
eureka:
  instance:
    hostname: localhost
    port: 7002
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/                    

#======docker======
---    
spring:
  profiles: docker
  cloud:
    config:
      fail-fast: true
      discovery:
        enabled: true
        service-id: config-service
#       uri: http://192.168.99.100:8888

eureka:
  instance:
    hostname: 192.168.99.100
    port: 7002
  client:
    register-with-eureka: true
    fetch-registry: true
    service-url:
      defaultZone: http://${eureka.instance.hostname}:${eureka.instance.port}/eureka/    
对于Docker图像示例:

  FROM openjdk:8
    EXPOSE 7003
    ADD /target/homepage-service.jar homepage-service.jar
    ENTRYPOINT ["java","-Dspring.profiles.active=docker", "-jar", "homepage-service.jar"]

您可以通过在中定义容器来部署Docker容器。您已经在使用kubectl run命令执行此操作

然后,这就是使用kubectl expose所做的(默认值为ClusterIP,非常适合于机架间通信)

这不适用于您的原因是每个容器试图到达其他容器的方式。本地主机无法工作。您正在使用的IP(192.168.x.x)可能也无法正常工作

而是将每个容器配置为目标。 例如:

注册表服务->配置服务

使用ClusterIP服务公开ConfigService(如果使用kubectl Expose,则名称为ConfigService)。
使用“ConfigService.default.svc.cluster.local”配置RegistryService以查找ConfigService