K8s部署微服务

1. 使用springboot开发简单程序

程序比较简单,能运行,有返回值即可,以下是程序内容,将程序打包获得web-0.0.1-SNAPSHOT.jar

1.1 pom文件内容



    4.0.0

    com.example
    web
    0.0.1-SNAPSHOT
    jar

    web

    
        org.springframework.boot
        spring-boot-starter-parent
        2.0.4.RELEASE
        
    

    
        UTF-8
        UTF-8
        1.8
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    
    

1.2 application.yml文件内容

server:
  port: 8081
spring:
  application:
    name: web

1.3 控制层

@RestController
public class HelloController {

    @Autowired
    private RestTemplate restTemplate;

    @GetMapping("/")
    public String home() {
        return "hello world";
    }

}

2. 将程序制作成docker镜像

创建Dockerfile文件,内容如下:

FROM openjdk:8
LABEL description="springboot web"
WORKDIR /app
COPY webapp.jar /app/web-0.0.1-SNAPSHOT.jar
EXPOSE 9001
CMD java -jar /app/web-0.0.1-SNAPSHOT.jar

执行docker build -t webapp .将创建镜像webapp,因为基于openjdk镜像创建的,镜像已经装好了jdk8,在启动webapp镜像的容器时会执行web-0.0.1-SNAPSHOT.jar这个程序。

3. k8s部署实例

3.1 创建rc

创建文件webapp-rc.yaml,文件内容如下:

apiVersion: v1
kind: ReplicationController
metadata:
  name: webapp-rc
spec:
  replicas: 2
  selector:
    name: webapp
  template:
    metadata:
      labels:
        name: webapp
    spec:
      containers:
      - name: webapp
        image: 192.168.174.128:5000/webapp
        ports:
        - containerPort: 9001

执行kubectl create -f webapp-rc.yaml将自动创建pos实例,replicas值表示实例个数

说明:
image: 192.168.174.128:5000/webapp,镜像路径是私有仓库的地址,也可以将镜像webapp上传到docker hub中,然后指向该镜像地址

3.3 创建svc,提供访问pod组的统一访问入口

apiVersion: v1
kind: Service
metadata:
  name: webapp-svc1
spec:
  ports:
  - port: 80
    targetPort: 9001
  selector:
    name: webapp

3.4 访问

因为服务只能在集群内部访问,可以进入某一个pod访问该服务,通过以下命令访问
kubectl exec PODNAME – curl -s http://webapp-svc1

你可能感兴趣的:(K8s部署微服务)