• k8s集群,Rancher 是一个完整的软件堆栈


    k8s学习笔记(1)- kubectl简单部署springboot应用

     

    前言:k8s全称kubernetes,k8s是为容器服务而生的一个可移植容器的编排管理工具,越来越多的公司正在拥抱k8s,并且当前k8s已经主导了云业务流程,关于更多的k8s知识,可自行学习

    1、k8s环境搭建

    2、k3s介绍

    • K3s 是由 Rancher Labs 发布的一款开源、极轻量的Kubernetes 发行版,通过了CNCF一致性认证,适用于在资源有限的环境中运行Kubernetes。
    • K3s主要用于部署在资源受限的边缘计算场景中,也可以在本地运行以进行Kubernetes测试或开发。
    • K3s是为生产环境设计的,因此在PC或笔记本电脑上,K3s是与生产级服务器最接近的选项。
    • 本文的操作的环境采用k3s环境

    3、pod介绍

    • Pod是kubernetes中你可以创建和部署的最小也是最简单位。一个Pod代表着集群中运行的一个进程。
    • Pod中封装着应用的容器(有的情况下是好几个容器),存储、独立的网络IP,管理容器如何运行的策略选项。Pod代表着部署的一个单位:kubernetes中应用的一个实例,可能由一个或者多个容器组合在一起共享资源

      image

    • 创建pod的两种方式
      a. kubectl命令方式
        kubectl run springbootapp --image=xjk27400861/springbootapp:42 --replicas=3
      
      备注:
      --image 镜像名称及tag
      --replicas指定副本数量
      b. 文件方式
      创建一个文件,springbootapp.yaml
      执行创建命令构建pod
        sudo kubectl create -f springbootapp.yaml
      

    4、使用文件方式,构建pod

    • 创建一个文件,springbootapp.yaml

      image

      文件内容

      image

      文件文本:
        apiVersion: v1
        kind: Pod
        metadata:
          name: springbootapp
          labels:
            app: springbootapp
        spec:
          containers:
            - name: springbootapp
              image: xjk27400861/springbootapp:42
              ports:
                - containerPort: 8080
      
      备注:
      image 指定镜像及tag
      containerPort 指定容器释放端口
    • 执行kubectl命令,构建pod
        sudo kubectl create -f springbootapp.yaml
      

      image

      过一会,通过命令sudo kubectl get pods,可以查看到pod已创建成功
    • pod是运行在k8s内部,不能直接访问,我们需要再部署一个类似“反向代理”角色的Pod来帮我们访问应用。这个Pod是Service类型的
    • 创建一个svc代理的yaml文件:springbootapp-svc.yaml,写入内容

      image

    • 输入命令,构建svc的pod
        sudo kubectl create -f springbootapp-svc.yaml
        or
        sudo kubectl create -f springbootapp-svc.yaml -n springboot
      

      image

    • 我们可以通过命令,查看svc pod的状态
        kubectl get svc -n springboot
      

      -n 指定命名空间,不写默认default

    • 在k3s任意节点,通过url可以看到app可以访问

      image

    • 进入pod命令,与docker命令类似:
        sudo kubectl exec -it springbootapp bash
      
    • 至此,我们完成了一个简单应用的部署,这是一个单体应用
      参考资料url:

      https://www.cnblogs.com/demingblog/p/12905569.html
      https://blog.51cto.com/loong576/2420421

     
    分类: k8s,  k3s
    作者:Leo_wl
             
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
    版权信息
  • 相关阅读:
    26、实例化需求:团队如何交付正确的软件
    25、华胥引
    24、老子
    23、禅与摩托车维修艺术(又名万里任禅游)
    22、中国哲学简史
    21、人类简史-从动物到上帝(赫拉利)
    20、淘宝技术这十年
    19.验收测试驱动开发
    18. Scrum敏捷软件开发
    17、胡适谈哲学与人生
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/15760132.html
Copyright © 2020-2023  润新知