轻识Logo
目录

    利用阿里云免费镜像仓库,实现微服务的k8s部署


    今天的内容给大家介绍下如何利用阿里云提供的免费私人容器镜像服务,来实现对个人项目容器镜像的管理,以及通过k8s集群来发布阿里云私人容器镜像服务中管理的服务。本文适合个人及创业团队学习/使用基于容器、镜像仓库、k8s等云原生技术时的参考。



    创建阿里云个人版容器镜像实例


    一般来说大型企业都会自己搭建内部私有镜像仓库(例如Harbor),但对于小公司来说也可以直接使用云服务提供的容器镜像服务。接下来以阿里云免费提供的个人版容器镜像服务,演示容器镜像服务的具体使用。步骤如下:


    (1)、登录阿里云,点击->控制台->找到“容器镜像服务”,如下图所示:



    如果入口比较难找,可以直接在阿里云搜索框搜索“容器镜像服务”。阿里云提供收费的企业版实例,也提供限制使用的个人版实例。这里选择个人版实例。


    (2)、创建成功后,设置镜像仓库登陆密码。如下图所示:



    提示:
    设置一个自己能记住的密码,例如我这里设置的是“wudimanong”。

    (3)密码设置成功后,点击“创建镜像仓库”,最终效果如下图所示:




    选择本地仓库,后面通过本地构建直接将Docker镜像推送至阿里云私有镜像仓库。



    之后就可以根据提示登录该阿里云镜像仓库,并向其中Push镜像了。



    配置k8s集群与镜像仓库的连接


    创建私有镜像仓库之后,为了安全设置了用户名及密码,如果k8s集群需要从镜像仓库拉取镜像,则每次都需要登陆是很麻烦的,所以可以进行相关设置。


    Kubernetes 集群使用 docker-registry 类型的 Secret 来通过容器仓库的身份验证,进而提取私有映像。


    创建Secret,命名为 regcred:


    # kubectl create secret docker-registry regcred  --docker-server=registry.cn-hangzhou.aliyuncs.com --docker-username=jqadmin --docker-password=wudimanong
    secret/regcred created


    提示:
    上述账号密码为你自己创建镜像仓库时设置的。



    打包Docker镜像


    打包Docker镜像需要编写Dockerfile文件,可以参考相关资料。这里我写了一个Java项目可以参考,通过工程构建就能直接将Docker镜像打包。


    项目地址(GitHub):

    https://github.com/manongwudi/springboot-k8s-demo


    下载项目后本地可以编译构建,完成后打包的本地镜像如下图所示:




    将镜像上传至阿里云私有镜像仓库


    接下来演示登录阿里云私有镜像仓库,并将本地构建的Docker容器镜像上传。步骤如下:


    (1)本地登陆阿里云镜像仓库(本地需要安装Docker环境),命令如下:

    $ docker login --username=jqadmin registry.cn-hangzhou.aliyuncs.com
    Password: 
    Login Succeeded


    提示:
    账号密码为创建阿里云仓库时设置的


    (2)将前面构建的Docker镜像上传至阿里云私有仓库。命令如下:

    $ docker push registry.cn-hangzhou.aliyuncs.com/wudimanong/springboot-k8s-demo:latest
    The push refers to repository [registry.cn-hangzhou.aliyuncs.com/wudimanong/springboot-k8s-demo]
    500e5779c8d2: Pushed 
    925523484e00: Pushed 
    344fb4b275b7: Pushed 
    bcf2f368fe23: Pushed 
    latest: digest: sha256:ba3930f5374ed4cfd2c39cb590c3f772c89cd73abe7bd321838fd453d11309fe size: 1159


    (3)此时回到阿里云仓库的界面,就能看到上传的镜像了,如下图所示:




    将阿里云镜像仓库的镜像发布至k8s集群


    接下来演示,如何将已经上传阿里云私有镜像仓库的服务发布至k8s集群,这里需要在k8s发布文件中进行一些配置。具体如下:


    (1)创建发布文件。

    vim springboot-k8s-demo.yaml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: springboot-k8s-demo
    spec:
      selector:
        matchLabels:
          app: springboot-k8s-demo
      replicas: 1
      #设置滚动升级策略
      #Kubernetes在等待设置的时间后才开始进行升级,例如5s
      minReadySeconds: 5
      strategy:
        type: RollingUpdate
        rollingUpdate:
          #在升级过程中最多可以比原先设置多出的Pod数量
          maxSurge: 1
          #在升级过程中Deployment控制器最多可以删除多少个旧Pod,主要用于提供缓冲时间
          maxUnavailable: 1
      template:
        metadata:
          labels:
            app: springboot-k8s-demo
        spec:
          #设置的阿里云私有镜像仓库登陆信息的secret(对应2.1.2的设置)
          imagePullSecrets:
          - name: regcred

          containers:
            - name: springboot-k8s-demo
              image: registry.cn-hangzhou.aliyuncs.com/wudimanong/springboot-k8s-demo:latest
              env:
                - name: SERVER_PORT
                  value: "8080"
                - name: SPRING_PROFILES_ACTIVE
                  value: test
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: springboot-k8s-demo
      labels:
        svc: springboot-k8s-demo
    spec:
      selector:
        app: springboot-k8s-demo
      ports:
        - name: http
          #Service在集群中暴露的端口(用于Kubernetes服务间的访问)
          port: 8080
          #Pod上的端口(与制作容器时暴露的端口一致,在微服务工程代码中指定的端口)
          targetPort: 8080
          #K8s集群外部访问的端口(外部机器访问)
          nodePort: 30002
      type: NodePort


    标红的部分,就是设置k8s对阿里云容器镜像仓库的连接——使用存储在"secret"资源中的镜像仓库的账号及密码。


    (2)执行发布命令。

    # kubectl apply -f springboot-k8s-demo.yaml 
    deployment.apps/springboot-k8s-demo created
    service/springboot-k8s-demo created


    (3)查看并测试应用部署是否成功

    # kubectl get po -o wide
    NAME                                   READY   STATUS    RESTARTS   AGE   IP              NODE       NOMINATED NODE   READINESS GATES
    springboot-k8s-demo-7f7f8db4cc-hd8j2   1/1     Running   0          41s   10.201.17.147   k8s-node   <none>           <none>
    test-ds-nginx-qdj6n                    1/1     Running   0          80m   10.201.17.143   k8s-node   <none>           <none>


    可以看到,部署的Java应用已经成功启动。接下来模拟调用下该服务的测试接口:

    # curl 10.201.17.147:8080/devops/test
    自动化发布示范工程测试接口返回->OK!


    可以成功访问,说明应用部署成功!



    —————END—————



    推荐阅读

    Kubernetes集群搭建超详细总结(CentOS版)

    干货|如何步入Service Mesh微服务架构时代

    实战|Service Mesh微服务架构实现服务间gRPC通信

    再见Nacos,我要玩Service Mesh了!

    Kubernetes微服务自动化发布系统

    Kubernetes微服务监控体系

    Kubernetes学习环境难搭建?Mac笔记本上安装一个!

    浏览 26
    点赞
    评论
    收藏
    分享

    手机扫一扫分享

    举报
    荀子卷第二
    荀子卷第二 登仕郎、守大理評事揚  倞  注。 不苟篇第三 君子行不貴苟難,說不貴苟察,名不貴苟傳,
    轻识古籍-繁体
    0
    荀子卷第四
    荀子卷第四 登仕郎、守大理評事揚  倞  注。 儒效篇第八 大儒之效,武王崩,成王幼,周公屏成王而及
    轻识古籍-繁体
    0
    荀子卷第五
    荀子卷第五 登仕郎、守大理評事楊 倞 注。 王制篇第九 請問爲政。曰:賢能不待次而舉,罷不能不待頃而
    轻识古籍-繁体
    0
    荀子卷第七
    荀子卷第七 登仕郎、守大理評事揚  倞  注。 王霸篇第十一 國者,天下之制利用也;人主者,天下之利
    轻识古籍-繁体
    0
    荀子卷第八
    荀子卷第八 登仕郎、守大理評事揚  倞 注。 君道篇第十二 有亂君,無亂國;有治人,無治法。羿之法非
    轻识古籍-繁体
    0
    荀子卷第十二
    荀子卷第十二 登仕郎、守大理評事揚 倞  注。 正論篇第十八 世俗之爲說者曰:主道利周。是不然。主者
    轻识古籍-繁体
    0
    荀子卷第十四
    荀子卷第十四 登仕郎、守大理評事揚 倞 注。 樂論第二十 夫樂者,樂也,人情之所必不免也。故人不能無
    轻识古籍-繁体
    0
    荀子卷第十八
    荀子卷第十八 登仕郎、守大理評事揚  倞  注。 成相篇第二十五 請成相世之殃。愚闇愚闇墮賢艮。人主
    轻识古籍-繁体
    0
    荀子卷第三
    荀子卷第三 登仕郎、守大理評事揚  倞  注。 非相篇第五 相人,古之人無有也,學者不道也。古者有姑
    轻识古籍-繁体
    0
    点赞
    评论
    收藏
    分享

    手机扫一扫分享

    举报

    深圳SEO优化公司河源网站优化排名多少钱白城推广网站报价安康品牌网站设计铜仁百度网站优化排名价格南充推广网站价格铁岭企业网站建设公司宿迁建网站哪家好迪庆企业网站建设价格黄南建网站多少钱山南关键词按天计费推荐松原SEO按天收费推荐益阳网站关键词优化价格台州营销型网站建设公司淮安网站搜索优化报价醴陵百姓网标王多少钱抚顺百度网站优化哪家好眉山百度竞价包年推广哪家好嘉兴关键词按天收费公司潮州网站seo优化价格岳阳百度网站优化排名价格广州百度网站优化排名报价张家口百姓网标王邵阳企业网站建设推荐资阳百度竞价包年推广公司荆门seo排名广州SEO按天收费公司临夏网站推广方案哪家好本溪百姓网标王推广报价来宾SEO按效果付费公司昭通网站优化按天收费歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

    深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化