zoukankan      html  css  js  c++  java
  • k8s dubbo微服务之maven配置

    k8s dubbo微服务之maven配置

    • 基于RBAC认证的一个GUI资源管理插件

    • 两个常用版本:v1.8.3和v1.10.1

    • K8S如何基于RBAC进行鉴权

      • 用户账户

      • 服务账户

      • 角色

      • 权限

        基于角色进行权限管理

    查看Jenkins

    通过web页面的命令行工具进行操作,相当于就是进入jenkins的docker容器,执行docker ps看看什么效果?

    为什么会看到这些启动的容器呢?原因就在于我们在Jenkins内部署了一个docker client,而docker server是在宿主机上的,docker本身是一个C/S的架构,因此,我们可以执行docker命令,获取宿主机的容器状态。

    因为我们在构建Dockerfile的时候,将docker.conf也添加了,因此,我们也可以直接登录harbor仓库。

    我们在Jenkins容器里执行docker ps -a会发生什么吗?

    可以看到,docker命令执行成功了,这是为什么呢?

    因为我们在编写Dockerfile的时候,把docker client也添加进去了,而我们的docker是典型的C/S架构,而docker server是安装到宿主机上的,因此,我们执行docker相关命令,就会将宿主机上的对应的结果进行返回。

    下载maven

    下载地址:[maven-3.6.1][https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz],下载到/opt/src目录

    [root@hdss7-200 jenkins_home]# wget https://archive.apache.org/dist/maven/maven-3/3.6.1/binaries/apache-maven-3.6.1-bin.tar.gz
    

    创建目录

    [root@hdss7-200 jenkins_home]# mkdir /data/nfs-volume/jenkins_home/maven-3-6-1-8u232
    
    [root@hdss7-200 src]# tar xfv apache-maven-3.6.1-bin.tar.gz -C /data/nfs-volume/jenkins_home/maven-3-6-1-8u232/
    [root@hdss7-200 src]# cd /data/nfs-volume/jenkins_home/maven-3-6-1-8u232
    [root@hdss7-200 maven-3-6-1-8u232]# maven-3-6-1-8u232
    [root@hdss7-200 maven-3-6-1-8u232]# mv ../apache-maven-3.6.1/* .
    [root@hdss7-200 maven-3-6-1-8u232]# vim conf/settings.xml
    

    修改maven的settings文件中的镜像源

      <mirrors>
        <!-- 添加到下面-->
        <mirror>
          <id>nexus-aliyun</id>
          <mirrorOf>*</mirrorOf>
          <name>Nexus aliyun</name>
          <url>http://maven.aliyun.com/nexus/content/groups/public</url>
        </mirror>
        <!-- 添加到上面-->
      </mirrors>
    

    可以看到这里可以配置jave_home的环境变量,如果maven不支持jdk版本,可以安装对应的jdk版本,并在这里设置环境变量。

    [root@hdss7-200 maven-3-6-1-8u232]# cd bin/
    [root@hdss7-200 bin]# vim mvn
    
    # -----------------------------------------------------------------------------
    # Apache Maven Startup Script
    #
    # Environment Variable Prerequisites
    #
    #   JAVA_HOME       Must point at your Java Development Kit installation.
    #   MAVEN_OPTS      (Optional) Java runtime options used when Maven is executed.
    #   MAVEN_SKIP_RC   (Optional) Flag to disable loading of mavenrc files.
    # -----------------------------------------------------------------------------
    

    因为我们在编写Dockerfile的时候,也把/data/nfs-volume目录进行了挂载,因此我们可以通过Jenkins的web页面,通过命令在Jenkins容器中查看宿主机目录的文件信息。

    开始构建镜像

    [root@hdss7-200 maven-3-6-1-8u232]# cd /data/nfs-volume/jenkins_home/
    [root@hdss7-200 maven-3-6-1-8u232]# docker pull docker.io/stanleyws/jre8:8u112
    [root@hdss7-200 maven-3-6-1-8u232]# docker images | grep jre8
    stanleyws/jre8            8u112             fa3a085d6ef1        3 years ago         363MB
    [root@hdss7-200 maven-3-6-1-8u232]# docker tag fa3a085d6ef1 harbor.od.com/public/jre:8u112
    [root@hdss7-200 maven-3-6-1-8u232]# docker push harbor.od.com/public/jre:8u112
    [root@hdss7-200 maven-3-6-1-8u232]# cd /data/dockerfile/
    [root@hdss7-200 dockerfile]# mkdir jre
    [root@hdss7-200 dockerfile]# cd jre/
    [root@hdss7-200 dockerfile]# vim Dockerfile
    
    FROM harbor.od.com/public/jre:8u112
    RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime &&
        echo 'Asia/Shanghai' >/etc/timezone
    ADD config.yml /opt/prom/config.yml
    ADD jmx_javaagent-0.3.1.jar /opt/prom/
    WORKDIR /opt/project_dir
    ADD entrypoint.sh /entrypoint.sh
    CMD ["/entrypoint.sh"]
    

    FROM harbor.od.com/public/jre:8u112,这是一个底包,提供maven运行时需要的环境和工具,是业内最常用的做法,因为Java程序经过编译之后变成了二进制文件,只需要给这些二进制文件提供运行时所需要的环境即可,而不用再去安装jdk环境。

    ADD jmx_javaagent-0.3.1.jar /opt/prom/,这是prometheus通过jar包收集所需信息

    ADD entrypoint.sh /entrypoint.sh,这是docker镜像运行时所需脚本

    其他配置信息

    [root@hdss7-200 dockerfile]# wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.3.1/jmx_prometheus_javaagent-0.3.1.jar -O jmx_javaagent-0.3.1.jar
    
    [root@hdss7-200 dockerfile]# vim entrypoint.sh
    
    #!/bin/sh
    M_OPTS="-Duser.timezone=Asia/Shanghai -javaagent:/opt/prom/jmx_javaagent-0.3.1.jar=$(hostname -i):${M_PORT:-"12346"}:/opt/prom/config.yml"
    C_OPTS=${C_OPTS}
    JAR_BALL=${JAR_BALL}
    exec java -jar ${M_OPTS} ${C_OPTS} ${JAR_BALL}
    

    ${M_PORT:-"12346"},如果不指定端口则用默认的12346端口

    ${JAR_BALL}这是把运行时的JAR_BALL赋值给shell脚本的JAR_BALL变量里

    [root@hdss7-200 dockerfile]# chmod +x entrypoint.sh
    
    [root@hdss7-200 dockerfile]# vim config.yml
    
    ---
    rules:
      - pattern: '.*'
    

    创建base公有仓库

    开始构建

    [root@hdss7-200 dockerfile]# docker build . -t harbor.od.com/base/jre8:8u112
    [root@hdss7-200 dockerfile]# docker push !$
    

    然后创建流水线

    这里是保留期限和副本数

  • 相关阅读:
    Git从远程分支创建本地分支
    Git删除远程分支
    git查看某次commit的修改
    translatesAutoresizingMaskIntoConstraints
    微信公众平台开发实战Java版之如何网页授权获取用户基本信息
    Oracle中的instr()函数 详解及应用
    eclipse查看方法被那些代码调用open call hierarchy
    Eclipse怎么全局搜索和替换(整个项目)
    Java中的final关键字--浅析
    shell脚本-成长之路
  • 原文地址:https://www.cnblogs.com/liuhuan086/p/13574813.html
Copyright © 2011-2022 走看看