前言: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中应用的一个实例,可能由一个或者多个容器组合在一起共享资源

  • 创建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

    文件内容

    文件文本:
      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

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

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

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

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

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

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

    https://www.cnblogs.com/demingblog/p/12905569.html

    https://blog.51cto.com/loong576/2420421

最新文章

  1. Linux/CentOS下开启MySQL远程连接,远程管理数据库
  2. iOS-点击推送消息跳转处理
  3. ElasticSearch入门系列(五)数据
  4. Delicious Retouch 3
  5. JSon_零基础_007_将JSon格式的"数组"字符串转换为Java对象"数组"
  6. 跨浏览器兼容的HTML5视频音频播放器
  7. iOS-UISearchBar和UISearchController(参考网友来练习一下)
  8. hdu 4763 Theme Section(KMP水题)
  9. 12天学好C语言——记录我的C语言学习之路(Day 4)
  10. codeforces Round #347 (Div. 2) C - International Olympiad
  11. 【POJ2104】【整体二分+树状数组】区间第k大
  12. 水务新、老营收系统大PK
  13. ssh登录命令(转)
  14. java线程学习——汉堡销售问题
  15. VPN连接在遇到飞鱼星设备时可能出现的疑难问题
  16. HTML <div> 和<span>
  17. ASP.NET Core读取AppSettings
  18. 两种利用GCD实现分步获取结果的方式和SDWebImage缓存机制的验证
  19. Linux查看与挂载新磁盘
  20. flask中的url_for的使用

热门文章

  1. ArrayPool 源码解读之 byte[] 也能池化?
  2. MySQL密码重置方法
  3. JavaScript之创建对象的模式
  4. netty系列之:搭建HTTP上传文件服务器
  5. 窗口函数至排序——SQLServer2012可高用
  6. 详解Java中==和equals()的区别
  7. UVA 11853 Paintball(几何数学+DFS)
  8. 配置阿里云gradle
  9. html网页乱码
  10. P3348-[ZJOI2016]大森林【LCT】