歡迎光臨
每天分享高質量文章

Kubernetes 叢集部署 tomcat 容器

(點選上方公眾號,可快速關註)


來源:乞力馬扎羅的雪CYF ,

blog.csdn.net/chenyufeng1991/article/details/79843618

  • kube-tomcat.yaml實現如下。

這裡是把Deployment和Services在一個檔案中實現了。也可以分為兩個檔案來實現。

# Copyright 2015 Google Inc. All Rights Reserved.

#

# Licensed under the Apache License, Version 2.0 (the “License”);

# you may not use this file except in compliance with the License.

# You may obtain a copy of the License at

#

#     http://www.apache.org/licenses/LICENSE-2.0

#

# Unless required by applicable law or agreed to in writing, software

# distributed under the License is distributed on an “AS IS” BASIS,

# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

# See the License for the specific language governing permissions and

# limitations under the License.

 

# Configuration to deploy release version of the Dashboard UI.

#

# Example usage: kubectl create -f

 

kind: Deployment

apiVersion: extensions/v1beta1

metadata:

  labels:

    app: kube-tomcat

    version: v1.1.1

  name: kube-tomcat

  namespace: default

spec:

  replicas: 1

  selector:

    matchLabels:

      app: kube-tomcat

  template:

    metadata:

      labels:

        app: kube-tomcat

    spec:

      containers:

      – name: kube-tomcat

        image: docker.io/chenyufeng/tomcat-centos

        imagePullPolicy: Always

        ports:

        – containerPort: 8080

          protocol: TCP

        args:

          # Uncomment the following line to manually specify Kubernetes API server Host

          # If not specified, Dashboard will attempt to auto discover the API server and connect

          # to it. Uncomment only if the default does not work.

        – –apiserver-host=http://47.97.90.38:8080  ## 請修改為自己的kube-apiserver

        livenessProbe:

          httpGet:

            path: /

            port: 8080

          initialDelaySeconds: 30

          timeoutSeconds: 30

kind: Service

apiVersion: v1

metadata:

  labels:

    app: kube-tomcat

  name: kube-tomcat

  namespace: default

spec:

  type: NodePort

  ports:

  – port: 80

    targetPort: 8080

  selector:

    app: kube-tomcat

  • 完整的檔案如下:

在master上,然後使用如下命令建立deployment和Service

kubectl create -f kube-tomcat.yaml

檢視建立的deployment:、

kubectl get deployment

檢視這個deployment的詳情:

kubectl describe deployment kube-tomcat

檢視建立的service:

kubectl get service

檢視這個service的詳情。

kubectl describe service kube-tomcat

  • service詳情這裡的IP就是CLUSTER-IP. CLUSTER-IP是和service系結的。

  • service詳情這裡的Port就是Service的埠號。

  • service詳情這裡的NodePort就是Node的真實埠號。

  • service詳情這裡的Endpoints就是容器的IP和port。

檢視建立的pod:

kubectl get pod

檢視其中一個pod的詳情。

pod詳情這裡的IP是nodes中的虛擬IP。該虛擬IP可以去nodes裡面使用ifconfig檢視。

kubectl describe pod kube-tomcat-1115055280-tk1f8

在nodes上檢視建立的容器:

  • 然後使用瀏覽器訪問:http://47.97.90.38:8080/api/v1/proxy/namespaces/default/services/kube-tomcat/

這裡一定要指定namespaces和services。

  • 然後到nodes中,把war使用“docker cp”複製到容器的tomcat/webapps,就可以實現頁面的訪問了【這裡可能需要等待較多時間,至少幾分鐘】

  • 在Postman中進行測試

註意在請求中的IP應該是master所在的IP。傳回成功。可以使用Postman來進行介面測試,測試透過表示部署成功。

  • 以上步驟的部署也可以結合持續整合CI/CD來進行,能簡化不少流程。

看完本文有收穫?請轉發分享給更多人

關註「ImportNew」,提升Java技能

贊(0)

分享創造快樂