Kubernetes1.14.2實踐 - 應用服務部署

部署K8s應用服務java

1 搭建docker registry鏡像私服(或者使用Harbor搭建)node

docker run -d -p 5000:5000 --name registry2 --restart=always --privileged=true  -v  /var/docker/registry:/var/lib/registry  registry2
#--restart 標誌會檢查容器的退出代碼,並據此來決定是否要重啓容器,默認是不會重啓
#--restart的參數說明 
#   always:不管容器的退出代碼是什麼,Docker都會自動重啓該容器
#   on-failure:只有當容器的退出代碼爲非0值的時候纔會自動重啓

2 構建鏡像並上傳到docker registrydocker

  1. 配置Dockerfile構建後端

    FROM java
     EXPOSE 8809
     ADD ./app-svc.jar app-svc.jar
     CMD java -jar ./app-svc.jar

    docker build -t app-server .api

  2. 上傳應用服務鏡像app

    鏡像標記爲 192.168.33.11:5000/app-svc:v1
      docker tag app-svc 192.168.33.11:5000/app-svc:v1  
      docker push 192.168.33.11:5000/app-svc:v1

3 在master節點建立服務ui

  1. 配置K8s文件app-svc.yaml以下:rest

    apiVersion: v1
     kind: ReplicationController
     metadata:
       name: app-svc-rc
     spec:
       replicas: 2
       selector:
         name: gw
       template:
         metadata:
           labels:
             name: app-svc
         spec:
           containers:
           - name: app-svc
             image: 192.168.33.11:5000/app-svc:v2
             ports:
             - containerPort: 8809
  2. 配置K8s文件app-svc.yaml以下:code

    apiVersion: v1
        kind: Service
        metadata:
          name: app-svc-svc1
        spec:
          ports:
          - port: 8099
            targetPort: 8099
            nodePort: 30099
           type: NodePort
           selector:
            name: app-svc
  3. 建立server

    kubectl create -f app-svc.yaml
  4. 檢查

    kubectl get po

4 訪問http://192.168.33.10:30099

5 FYI:

# 1. nodePort 外部流量訪問k8s集羣中service入口的一種方式(另外一種方式是LoadBalancer),是提供給外部流量訪問k8s集羣中service的入口
    # 2. port k8s集羣內部服務之間訪問service的入口,即clusterIP:port是service暴露在clusterIP上的端口
    # 3. targetPort 容器的端口(最終的流量端口),targetPort是pod上的端口,從port和nodePort上來的流量,通過kube-proxy流入到後端pod的targetPort上,最後進入容器
相關文章
相關標籤/搜索