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 !$
    

    然后创建流水线

    这里是保留期限和副本数

  • 相关阅读:
    Java实现 蓝桥杯VIP 算法提高 排队打水问题
    Java实现 蓝桥杯VIP 算法提高 排队打水问题
    Java实现 蓝桥杯VIP 算法提高 排队打水问题
    Java实现 蓝桥杯VIP 算法提高 特殊的质数肋骨
    Java实现 蓝桥杯VIP 算法提高 特殊的质数肋骨
    Java实现 蓝桥杯VIP 算法提高 特殊的质数肋骨
    Java实现 蓝桥杯VIP 算法提高 特殊的质数肋骨
    现在使用控件, 更喜欢继承(覆盖控件已有的函数,很奇怪的一种使用方式)
    Controls 属性与继承 TShape 类的小练习(使用TShape可以解决很多图形问题)
    QT创建窗口程序、消息循环和WinMain函数(为主线程建立了一个QEventLoop,并执行exec函数)
  • 原文地址:https://www.cnblogs.com/liuhuan086/p/13574813.html
Copyright © 2011-2022 走看看