一个简单的小开发
首页
分类
标签
归档
关于

YDS

30岁大龄程java程序员,心不老,神不灭
首页
分类
标签
归档
关于
  • K8S

    • K8S-集群安装(2.24前后版本的安装方式都有)
    • K8S基础概念学习
    • K8S控制台安装(安装dashboard)
    • storageclass学习
    • configmap学习
    • K8S发布JAVA项目
      • k8s长期token的使用方式
      • 创建一个pvc
    • DOCKER

    • HELM

    • LINUX

    • DEVOPS
    • K8S
    yds
    2023-11-25
    目录

    K8S发布JAVA项目

    # k8s发布java项目

    https://www.kubernetes.org.cn/deployment

    # deployment

    vim demoapp-deploy.yaml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: demoapp-deploy
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: demoapp
      template:
        metadata:
          labels:
            app: demoapp
        spec:
          containers:
          - name: demoapp
            image: 192.168.0.180:5000/yds/demoyds:latest
            ports:
            - containerPort: 8080
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19

    kubectl apply -f demoapp-deploy.yaml

    • 查看pod的网络节点分布情况

      kubectl get pod -o wide

      NAME                              READY   STATUS    RESTARTS   AGE    IP             NODE    NOMINATED NODE   READINESS GATES
      demoapp-deploy-5c9bb97649-jcdlq   1/1     Running   0          4m8s   10.244.2.210   node2   <none>           <none>
      demoapp-deploy-5c9bb97649-shm9t   1/1     Running   0          4m8s   10.244.1.197   node1   <none>           <none>
      
      1
      2
      3
      curl 10.244.2.210:8080/demo-api/hi
      {"code":"0","msg":"ok","data":"hey,guys!"}
      
      1
      2

    # service

    vim demoapp-service.yaml

    apiVersion: v1
    kind: Service
    metadata:
      name: demoapp-svc
      namespace: default
    spec:
      selector:
        app: demoapp
      type: NodePort
      ports:
      - port: 8080
        targetPort: 8080
        nodePort: 30010
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13

    kubectl apply -f demoapp-service.yaml

    • 查看service

      kubectl get svc

      NAME          TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
      demoapp-svc   NodePort    10.1.232.249   <none>        8080:30010/TCP   5s
      
      1
      2

      此时网络已经对外开放了30010端口,映射到pod中8080的端口,所以外网可以访问。

    # 卸载

    kubectl delete -f demoapp-service.yaml

    # pv & pvc

    • 安装nfs

      yum install -y nfs-utils
      
      1
    • 目录

      mkdir /home/nfs/data -pv
      
      1
    • nfs配置

      vim /etc/exports
      
      1
      /home/nfs/data *(rw,sync,no_root_squash)
      
      1
    • 开机启动

      systemctl enable rpcbind.service
      systemctl enable nfs-server.service
      
      1
      2
    • 启动

      systemctl start rpcbind.service & systemctl start nfs-server.service
      
      1
    • 安装pvc

      vim demoapp-pvc.yaml
      
      1
      apiVersion: v1
      kind: PersistentVolume
      metadata:
        name: demoapp-pv
        labels:
          name: demoapp-pv
      spec:
        nfs:
          path: /home/nfs/data
          server: node0  ## 节点名,这里用的是master1,和hosts文件中是一致的
        accessModes: ["ReadWriteMany","ReadWriteOnce"]
        capacity:
          storage: 1Gi
      
      ---
      
      apiVersion: v1
      kind: PersistentVolumeClaim
      metadata:
        name: demoapp-pvc
        namespace: default
      spec:
        accessModes: ["ReadWriteMany","ReadWriteOnce"]
        resources:
          requests:
            storage: 1Gi
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      kubectl apply -f demoapp-pvc.yaml
      
      1
    • 修改deployment

      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: demoapp-deploy
      spec:
        replicas: 3
        selector:
          matchLabels:
            app: demoapp
        template:
          metadata:
            labels:
              app: demoapp
          spec:
            volumes:   ## 加入volumes的定义,下文volumeMounts会引用
            - name: log
              persistentVolumeClaim:
                claimName: demoapp-pvc
            containers:
            - name: demoapp
              image: 192.168.0.180:5000/yds/demoyds:latest
              volumeMounts:  
              - name: log  ## 引用volumes
                mountPath: /data/app/log ## 将容器中日志的路径映射到pvc的路径中
              ports:
              - containerPort: 8080
      ---
      apiVersion: v1
      kind: Service
      metadata:
        name: demoapp-svc
        namespace: default
      spec:
        selector:
          app: demoapp
        type: NodePort
        ports:
        - port: 8080
          targetPort: 8080
          nodePort: 30010
      
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40

      启动成功后,pvc指定的路径/home/nfs/data中会输出容器的日志

    # helm发布java

    创建模板

    helm create [charName]
    
    1

    示例

    helm create demo-app-char
    
    1

    template目录下不用的东西删除掉,只留deploy.yaml,service.yaml,_help

    修改value.yaml

    image.repository: 镜像名
    
    image.tag: "latest"
    
    service.type: NodePort
    service.port: 端口号
    nodePort: 30083
    
    serviceAccount.create: false
    
    1
    2
    3
    4
    5
    6
    7
    8
    9

    修改template/service.yaml

    spec.ports.nodePort: {{ .Values.service.nodePort }}
    
    1

    修改template/deploy.yaml

    containerPort: 8080 ## 容器的端口号
    
    ## 这三个节点删除
    livenessProbe:
    readinessProbe: 
    serviceAccountName:
    
    1
    2
    3
    4
    5
    6

    # 代码

    .drone.yaml

    ## 使用helm3的方式启动容器..
    - name: deploy-by-helm3-main
      pull: if-not-exists
      image: pelotech/drone-helm3
      settings:
        helm_command: upgrade
        chart: ./spring-boot-chart
        release: spring-boot-release
        namespace: myapp-main
        ## 增加分支,记得先去服务器建个目录 mkdir /home/nfs/data/myapp-main -pv
        ## --set mage.nodePort=30010
        values: image.repository=192.168.0.180:5000/yds/demoyds,image.nodePort=30010,volumePath=/home/nfs/data/myapp-main,replicaCount=2
        kube_api_server: https://192.168.0.180:6443
        kube_token: eyJhbGciOiJSUzI1NiIsImtpZCI6ImE3QUhLQ2NyT0VIdGZ4UW5kMEc1UVZtVW9zODNwR3BsczRhdWdmZVdtV1kifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtYWRtaW4tdG9rZW4tN2Y0ODYiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC5uYW1lIjoiZGFzaGJvYXJkLWFkbWluIiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQudWlkIjoiMWUwZTg4MTEtZmI1NC00YTA4LWI4ZjAtOWExNTYwNmJjZGE4Iiwic3ViIjoic3lzdGVtOnNlcnZpY2VhY2NvdW50Omt1YmUtc3lzdGVtOmRhc2hib2FyZC1hZG1pbiJ9.e52gYNdop1b2bodFTxSzod18kRlMd3kIrCnKEfxwDGZH8mTdwx_CfBkfh1zu1ADf-MkDSizYoDDi6PEu2qKdq2P3Zr4Dh4BLTFVGftOq-iX5dJhzKDgqOl_Ic6DgdA4uH9yDkolYQIBOVHpVBQaHcb5Tjdy3S4JwydYvU3afdzlwwTUyCF8nGWpeaVzTHSJILJ1ZXm1IxFzL2xbDVYxlF_NsdxexvwdEh9HFLVL5OMd7QItq3K3Jsoh0eM_n4rEedcp8ZFVZdGLPQnCj1Jmuxxh5kirv1mISEsM2wHa0IwnlbQBt7Ijqbt8pza43dGcRyT8At2o7Ko5RdoPL6nDOuw
        kube_certificate: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUN5RENDQWJDZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJeE1EY3lOakE0TVRVMU5Wb1hEVE14TURjeU5EQTRNVFUxTlZvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTEdaCmdVYnJiKy9xTU1sU0VyajlpWWN2REZiazNSckZ6ZGp4R1h4bVNzZFlhK211Y1B6d2hTNHhNaURISnJKaFVqbEcKL3ppUWpCdE9TemJtUFNEVWxJa0ZySkdzNE5OTkVlNXNHZlhDa3BBa3R6bGhBQ0hEbXlQemoxUmxpMnZrUjBTcgpTNkRFdThyQlNlbmJaZTVLWjFhRHJET2FPS3ZrYjVKUVdpMjZka2hKZ2xyRWRrSnJHTWswY24vZ3QrQjJNdlM0ClJ6ZGdLMEZKOHRGN3dnd3pjT0pyYmpvSVNScHh4OWo5SHV1MzM5RHMwK1BLT3J0dVozOEcrSGZCdCtwSmRKT3UKRWdMM2RtUTE0MWdhNS9WK3I4T2xadzBaL2ZrblZpbUsydFRPOXYrUGNvSnIvODR4a0lsN0E1Tk00LzVnUWFMcgpqQ01LeTR1YXJFNnlaRDVuczRzQ0F3RUFBYU1qTUNFd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0RRWUpLb1pJaHZjTkFRRUxCUUFEZ2dFQkFEb1I4dHFNK0MrdTBRVTBaREZTQnFQR3JaV0gKTTZ0SDJkKzFXbDljbVlmNEZ5WXphM3AxSnJqbmZNLzFuSnZGaXEvOG1VdjB2YXViY2RnOTVUanZpR0VKN1BxTQo1bVFBOEprbnAxcE9VU0NMVGh1QWk0M1EvbkpzZGFzQ3V6RzVaUlp4cGdJYVRhTEtKWUZKL3VDczZlaXhFTDQxClYrQWZtRThaWXlJajBFbHVlVU53UFh2cnNxd3R1QU9FUVRjTzM2YmdzL05VK0dvbzRqNzB4NS92aUlsY3pXajQKTXBSK0lkbzVZZStKTk54WU55L3MyczYrTGpERDJKTm9nTnNtRVhiS0NRQzhQSVppbFlteStKOC9FQ3l1UzlBbgpuQlRjMDNKVWZPMFhJR1ptNi9nM0NKSWxDeWpIZUNLeDVRWkNMdlkzWTVVVkF5REdaZFpSRUNkemJ6QT0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=
        kube_service_account: dashboard-admin
      when:
        branch:
          - main
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #JAVA#K8S
    上次更新: 2024/09/30, 01:34:11
    configmap学习
    k8s长期token的使用方式

    ← configmap学习 k8s长期token的使用方式→

    最近更新
    01
    使用docker-compose安装mysql
    09-30
    02
    鸿蒙app开发中的数据驱动ui渲染问题
    08-01
    03
    LINUX连接openvpn
    07-02
    更多文章>
    Theme by Vdoing | Copyright © 2020-2024 YDS
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式