Kubernetes/k8s(四)Deployment类型的yml拉取Nexus私服镜像创建pod

osc_3vp99iw6 2020-11-11 08:38:39
docker


一、搭建需要准备

虚拟机 ip 配置
k8s-master 192.168.230.127 cpu4/4以上,内存8/8以上
k8s-node1 192.168.230.128 cpu4/4以上,内存8/8以上
k8s-node2 192.168.230.129 cpu4/4以上,内存8/8以上
nexus 192.168.230.130 cpu4/4以上,内存4/4以上

二、搭建Nexus私服镜像库

我的私服搭建是基于docker搭建的,所以得先安装docker。

  1. 安装docker

    wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
    yum -y install docker-ce-18.06.1.ce-3.el7
    systemctl enable docker && systemctl start docker
    cat > /etc/docker/daemon.json << EOF
    {"registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"]}
    EOF
    
  2. 关闭seLinux

    sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
    setenforce 0 # 临时
    
  3. 安装Nexus

    docker search nexus # 搜索nexus,选择下载数最多的第一个sonatype/nexus3
    docker pull sonatype/nexus3
    docker run -id -u root -p 8081:8081 -p 8082:8082 --privileged=true -v /opt/nexus-data:/nexus-data --restart=always sonatype/nexus3
    

    注意: 运行镜像命令要加上-u root和–privileged=true,否则会运行失败。

    解释:
    -d 后台运行
    -p 端口号映射 8081 管理界面使用 8082 nexus3私服使用
    -v 文件夹映射 私服的文件都保存到本地文件夹/opt/nexus-data中
    –restart=alwarys 自动重启
    sonatype/nexus3 镜像名称




  4. Neuxs管理工具
    用浏览器访问 ip:8081 进入Nexus管理页面,点击右上角的Sign in进行登录。首次登录,到映射目录(/opt/nexus-data)下找到admin.password,打开可以看到admin的默认密码,登录过程中根据提示修改为自己密码。

  5. 创建存储对象
    在这里插入图片描述
    在这里插入图片描述

  6. 创建Docker仓库
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述



  7. 设置权限
    在这里插入图片描述

  8. 查看私服仓库内容
    在这里插入图片描述

三、利用DockerFile创建镜像上传私服

  1. 配置k8s集docker的daemon.json文件。

    vi /etc/docker/daemon.json
    {
    "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"],
    "insecure-registries": ["192.168.230.130:8082"] #这里放私服ip
    }
    

    重启docker:

    systemctl daemon-reload #重载docker配置
    systemctl restart docker #重启docker服务
    docker info #查看docker信息确认仓库是否添加
    
  2. 把项目jar包用DockerFile的方式创建镜像。

    编写DockerFile脚本代码:

    FROM java:8 #基础镜像,如果本地仓库没有,会从远程仓库拉取
    MAINTAINER wei.zhou #创建人
    ADD demo-0.0.1-SNAPSHOT.jar demo.jar #第一个是jar包名称,第二个是重命名名称
    EXPOSE 8080 #暴露端口
    ENTRYPOINT ["java","-jar","demo.jar"]
    

    构建镜像
    docker build -f Dockerfile文件位置 -t 镜像名:版本 . 【末尾有个点,一点要注意】

    这里可以看一下我之前的Kubernetes/k8s(三)k8s创建jar包docker镜像的pod

  3. 登录私服并上传镜像。

     docker login 192.168.230.130:8082 #登录私服仓库
    

    发布之前需要把镜像名称修改为私服地址,
    格式为:服务器地址:服务器端口/镜像名称:版本
    命令为: docker tag 镜像id(build好的镜像的id) 镜像新名称

    最后使用上传命令 docker push 镜像名称:TAG

    docker push 192.168.230.130:8082/demo:latest
    

    在这里插入图片描述

四、创建Deployment类型yml进行创建pod

  1. 创建secret秘钥

    kubectl create secret docker–registry <regsecret-name> --docker-server=<your-registry-server> --docker-username=<your-name> --docker-password=<your-pword> --docker-email=<your-email>。
    

    注意: 每一个空间都需要创建各自的秘钥!
    e.g: --docker-server=192.168.230.130:8082 (不需要加http://)

  2. yaml中使用imagePullSecrets

    ---
    apiVersion: apps/v1
    kind: Deployment
    metadata:
    name: local-demo
    namespace: default
    spec:
    replicas: 1
    selector:
    matchLabels:
    app: lodemo
    release: stabel
    template:
    metadata:
    labels:
    app: lodemo
    release: stabel
    env: test
    spec:
    imagePullSecrets:
    - name: docker-local
    containers:
    - name: lodemo
    image: 192.168.230.130:8082/demo:latest
    imagePullPolicy: IfNotPresent
    ports:
    - name: http
    containerPort: 80
    ---
    apiVersion: v1
    kind: Service
    metadata:
    name: lodemo
    namespace: default
    spec:
    type: NodePort
    selector:
    app: lodemo
    release: stabel
    ports:
    - name: http
    port: 8080
    targetPort: 8080
    nodePort: 30080
    ---
    
  3. 运行yml

    kubectl apply -f xxxx.yml
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

版权声明
本文为[osc_3vp99iw6]所创,转载请带上原文链接,感谢
https://my.oschina.net/u/4307541/blog/4712013

  1. 【计算机网络 12(1),尚学堂马士兵Java视频教程
  2. 【程序猿历程,史上最全的Java面试题集锦在这里
  3. 【程序猿历程(1),Javaweb视频教程百度云
  4. Notes on MySQL 45 lectures (1-7)
  5. [computer network 12 (1), Shang Xuetang Ma soldier java video tutorial
  6. The most complete collection of Java interview questions in history is here
  7. [process of program ape (1), JavaWeb video tutorial, baidu cloud
  8. Notes on MySQL 45 lectures (1-7)
  9. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  10. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  11. 精进 Spring Boot 03:Spring Boot 的配置文件和配置管理,以及用三种方式读取配置文件
  12. Refined spring boot 03: spring boot configuration files and configuration management, and reading configuration files in three ways
  13. 【递归,Java传智播客笔记
  14. [recursion, Java intelligence podcast notes
  15. [adhere to painting for 386 days] the beginning of spring of 24 solar terms
  16. K8S系列第八篇(Service、EndPoints以及高可用kubeadm部署)
  17. K8s Series Part 8 (service, endpoints and high availability kubeadm deployment)
  18. 【重识 HTML (3),350道Java面试真题分享
  19. 【重识 HTML (2),Java并发编程必会的多线程你竟然还不会
  20. 【重识 HTML (1),二本Java小菜鸟4面字节跳动被秒成渣渣
  21. [re recognize HTML (3) and share 350 real Java interview questions
  22. [re recognize HTML (2). Multithreading is a must for Java Concurrent Programming. How dare you not
  23. [re recognize HTML (1), two Java rookies' 4-sided bytes beat and become slag in seconds
  24. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  25. RPC 1: how to develop RPC framework from scratch
  26. 造轮子系列之RPC 1:如何从零开始开发RPC框架
  27. RPC 1: how to develop RPC framework from scratch
  28. 一次性捋清楚吧,对乱糟糟的,Spring事务扩展机制
  29. 一文彻底弄懂如何选择抽象类还是接口,连续四年百度Java岗必问面试题
  30. Redis常用命令
  31. 一双拖鞋引发的血案,狂神说Java系列笔记
  32. 一、mysql基础安装
  33. 一位程序员的独白:尽管我一生坎坷,Java框架面试基础
  34. Clear it all at once. For the messy, spring transaction extension mechanism
  35. A thorough understanding of how to choose abstract classes or interfaces, baidu Java post must ask interview questions for four consecutive years
  36. Redis common commands
  37. A pair of slippers triggered the murder, crazy God said java series notes
  38. 1、 MySQL basic installation
  39. Monologue of a programmer: despite my ups and downs in my life, Java framework is the foundation of interview
  40. 【大厂面试】三面三问Spring循环依赖,请一定要把这篇看完(建议收藏)
  41. 一线互联网企业中,springboot入门项目
  42. 一篇文带你入门SSM框架Spring开发,帮你快速拿Offer
  43. 【面试资料】Java全集、微服务、大数据、数据结构与算法、机器学习知识最全总结,283页pdf
  44. 【leetcode刷题】24.数组中重复的数字——Java版
  45. 【leetcode刷题】23.对称二叉树——Java版
  46. 【leetcode刷题】22.二叉树的中序遍历——Java版
  47. 【leetcode刷题】21.三数之和——Java版
  48. 【leetcode刷题】20.最长回文子串——Java版
  49. 【leetcode刷题】19.回文链表——Java版
  50. 【leetcode刷题】18.反转链表——Java版
  51. 【leetcode刷题】17.相交链表——Java&python版
  52. 【leetcode刷题】16.环形链表——Java版
  53. 【leetcode刷题】15.汉明距离——Java版
  54. 【leetcode刷题】14.找到所有数组中消失的数字——Java版
  55. 【leetcode刷题】13.比特位计数——Java版
  56. oracle控制用户权限命令
  57. 三年Java开发,继阿里,鲁班二期Java架构师
  58. Oracle必须要启动的服务
  59. 万字长文!深入剖析HashMap,Java基础笔试题大全带答案
  60. 一问Kafka就心慌?我却凭着这份,图灵学院vip课程百度云