zoukankan      html  css  js  c++  java
  • k8s集群搭建学习-部署一个自定义java服务

    一、创建docker镜像
    • dockerFile
    FROM  openjdk:13
    LABEL  by=jty name=docker_boot description="k8s测试" version="v1.0"
    RUN mkdir -p /usr/local/k8s/
    RUN cd /usr/local/k8s/
    WORKDIR /usr/local/k8s
    COPY k8s-test-1.0-SNAPSHOT.jar  /usr/local/k8s/k8s-test-1.0-SNAPSHOT.jar  #k8s-test-1.0-SNAPSHOT.jar为打包后的jar包
    EXPOSE  8012
    ENTRYPOINT ["java", "-jar", "k8s-test-1.0-SNAPSHOT.jar"]
    
    • 创建镜像
    docker build -f /usr/local/k8s/dockerFile -t k8s-test:v1.0 . #保证编辑的dockerFile在-f后的目录中存在
    docker images #查看镜像,该镜像在本地镜像仓库,可通过配置提交到如阿里云镜像仓库等服务器
    

    创建namespace、deployment、service
    #vim k8s-test-namespace.yaml
    #创建名称空间
    apiVersion: v1
    kind: Namespace
    metadata:
      name: dev
      labels:
       name: k8s-test
    
    #vim k8s-test-deploy.yaml
    #创建deployment
    apiVersion: apps/v1        # 1.9.0 之前的版本使用 apps/v1beta2,可通过命令 kubectl api-versions 查看
    kind: Deployment           #指定创建资源的角色/类型
    metadata:                  #资源的元数据/属性
      name:   k8s-test-deploy    #资源的名字,在同一个namespace中必须唯一
      namespace:  dev             #命名空间
      labels: 
        app: k8s-test                  #标签
    spec:
      replicas: 2         #副本数量2
      strategy:
        rollingUpdate:   ##由于replicas为3,则整个升级,pod个数在2-4个之间
          maxSurge: 1      #滚动升级时会先启动1个pod
          maxUnavailable: 1 #滚动升级时允许的最大Unavailable的pod个数
      selector:             #定义标签选择器,部署需要管理的pod(带有该标签的的会被管理)需在pod 模板中定义
        matchLabels:
          app: k8s-test
      template:      #这里Pod的定义
        metadata:
          labels:    #Pod的label
            app: k8s-test
        spec:        # 模板的规范  
          containers:  
          - name: k8s-test      #容器的名字  
            image: k8s-test:v1.0  #容器的镜像地址 
            imagePullPolicy: IfNotPresent  
            resources:              ##CPU内存限制
              requests:
                cpu: 2
                memory: 1024Mi
              limits:
                cpu: 2
                memory: 1024Mi
            ports:
              - name: http
                containerPort: 8012 #对service暴露端口           
    
    #vim k8s-test-service.yaml
    #创建service
    apiVersion: v1
    kind: Service
    metadata:
      name: k8s-test-service
    spec:
      selector:
        app: k8s-test
      ports:
      - protocol: TCP
        port: 8012 # 需要暴露的集群端口(service暴露的)
        targetPort: 8012  # 容器的端口(后端容器提供服务的端口)
      type: NodePort
    
    测试

    • 在其中一个节点上查看容器运行情况

    • 访问测试

  • 相关阅读:
    Linux入门-ssh scp rsync
    Linux入门-samba
    Linux入门-vsftp
    Linux入门-nfs
    MySQL卸载(rpm)
    rust_3_所有权
    rust_1_入门指南与猜猜看游戏
    vscode首次ssh remote linux连不上
    vbox新装ubuntu虚拟机注意事项
    IBM Rational Rose和Start UML的c++逆向工程自动生成UML类图组件
  • 原文地址:https://www.cnblogs.com/jinit/p/15071457.html
Copyright © 2011-2022 走看看