K8s 배치 docker 화 자바 응용

7359 단어 자바
docker 다운로드 링크
Docker
다음은 SpringBoot 프로젝트 를 예 로 들 면
  • 먼저 SpringBoot 공 사 를 설립 하고 공사 목록 구 조 는 다음 과 같다
  • > mt-myservice
        > .idea
        > .mvn
        > src
            > main
                > docker
                      Dockerfile         // Dockerfile(      )   docker   
            > java
                > com.my
                    > controller         // web    ,controller   
                    > service            //                   
                      MyserviceApplication   // springBoot     
        > resources
              application.properties     // springBoot   ,tomcat           
  • 상기 docker 설정 파일 Dockerfile 을 추가 하고 디 렉 터 리 구 조 는 src/main/docker 로 설정 되 며 내용 은 다음 과 같 습 니 다
  • #      
    FROM java:8  
    VOLUME /tmp  
    #      jar          app.jar
    ADD myservice-0.0.1-SNAPSHOT.jar app.jar 
    #    ,  -Djava.security.egd=file:/dev/./urando      ,urandom        
    #         1000M
    ENTRYPOINT ["java","-Xmx1000m","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
    
  • pom 에서 maven 플러그 인 을 설정 하고 다음 과 같이 설정 합 니 다
  •     
            
                
                    org.springframework.boot
                    spring-boot-maven-plugin
                
                
                    com.spotify
                    docker-maven-plugin
                    0.2.3
                    
                        demo/${project.artifactId}
                        src/main/docker
                        
                            
                                /
                                ${project.build.directory}
                                ${project.build.finalName}.jar
                            
                        
                    
                
            
        

    4.567917.tomcat 포트 번 호 를 지정 하고 springboot 를 예 로 들 어 classpath 경로 에서 application.properties 파일 을 수정 합 니 다.내용:4.567913.4.567918.
  • docker 시작(아래 구축 을 시작 하지 않 으 면 실패 합 니 다)
  • maven 명령 실행:package docker:build(실행 에 성공 하면 docker 미 러 가 로 컬 창고 에 생 성 됩 니 다)
  • docker 명령 행 에서 명령 을 실행 합 니 다.
    docker images(로 컬 미 러 보기)
  • docker login(자신의 docker 계 정 에 로그 인하 고 등록 할 수 없 음)
  • docker tag [ImageId]  demo/myservice:[미 러 버 전 번호]   //수정 버 전 번호
    docker push/(미 러 를 원 격 창고 로 전송)

  • 일반적인 질문:
  • docker 시작 에 실 패 했 습 니 다.컴퓨터 에 VM 설치 허용 옵션 이 설정 되 어 있 지 않 은 것 같 습 니 다.bios 에서 변경 할 수 있 습 니 다
  • VM 을 만 드 는 데 실 패 했 습 니 다.VirtualBox 버 전 문제 일 수 있 습 니 다.VirtualBox 를 마 운 트 해제 하고 다시 설치 할 수 있 습 니 다
  • k8s 배치 서비스,Yml 파일 설정:
    server.port=

    이미지 업그레이드 시 deployment 를 수정 해 야 합 니 다.요청 방식 은 patch 입 니 다.
      service  :
    api:/api/v1/namespaces/{mynamespace}/services/
        :post
    {
        "metadata":{
            "name":"myservice",
            "namespace":"mynamespace",
            "labels":{
                "app":"myservice"
            }
        },
        "apiVersion":"v1",
        "kind":"Service",
        "spec":{
            "selector":{
                "app":"myservice"
            },
            "ports":[
                {
                    "protocol":"TCP",
                    "port":80,
                    "targetPort":8080
                }
            ],
            "clusterIP":"None"
        }
    }
      :targetPort              。
    
    
      Ingress  (   nginx):
    api:/apis/extensions/v1beta1/namespaces/{mynamesapce}/ingresses/
        :post
    {
        "metadata":{
            "name":"myservice",
            "namespace":"mynamesapce"
        },
        "apiVersion":"extensions/v1beta1",
        "kind":"Ingress",
        "spec":{
            "rules":[
                {
                    "host":"myservice.mtdata.bach.com",
                    "http":{
                        "paths":[
                            {
                                "path":"/",
                                "backend":{
                                    "servicePort":80,
                                    "serviceName":"myservice"
                                }
                            }
                        ]
                    }
                }
            ]
        }
    }
    
    
      deployment,  Deployment   Pod ReplicaSet
    api:/apis/extensions/v1beta1/namespaces/{mynamespace}/deployments/
        :post
    {
        "metadata":{
            "name":"myservice",
            "namespace":"mynamespace"
        },
        "apiVersion":"extensions/v1beta1",
        "kind":"Deployment",
        "spec":{
            "template":{
                "metadata":{
                    "labels":{
                        "app":"myservice"
                    }
                },
                "spec":{
                    "hostNetwork":false,
                    "containers":[
                        {
                            "image":"docker    :   ",
                            "imagePullPolicy":"Always",
                            "name":"subtitle",
                            "resources":{
                                "requests":{
                                    "memory":"1024Mi",
                                    "cpu":4
                                },
                                "limits":{  
                                    "memory":"2048Mi",         //      
                                    "cpu":4                    //cpu   
                                }
                            },
                            "readinessProbe":{
                                "tcpSocket":{
                                    "port":8080
                                },
                                "periodSeconds":10,
                                "initialDelaySeconds":20
                            }
                        }
                    ],
                    "affinity":{
                        "nodeAffinity":{
                            "requiredDuringSchedulingIgnoredDuringExecution":{
                                "nodeSelectorTerms":[
                                    {
                                        "matchExpressions":[
                                            {
                                                "key":"gpu",
                                                "operator":"DoesNotExist"
                                            }
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                }
            },
            "replicas":1
        }
    }
    

    k8s api 문서:http://kubernetes.kansea.com/docs/api-reference/v1/operations/ k8s 매개 변수 설명 문서:http://kubernetes.kansea.com/docs/api-reference/v1/definitions/#_v1_event

    좋은 웹페이지 즐겨찾기