首页 > 其他分享 >K8s小白?应用部署太难?看这篇就够了!

K8s小白?应用部署太难?看这篇就够了!

时间:2022-08-23 18:27:13浏览次数:90  
标签:太难 Kubernetes Rainbond 部署 访问 这篇 nginx 应用 K8s

在云原生趋势下,容器和 Kubernetes 可谓是家喻户晓,许多企业内部的研发团队都在使用 Kubernetes 打造 DevOps 平台。从最早的容器概念到 Kubernetes 再到 DevOps/GitOps 整个技术链非常庞大,Kubernetes 的优势也显而易见 可移动 可扩展 自修复 等,但有一个劣势点就是技术门槛太高,对于开发者来说单单一个 Kubernetes 就够我们学习一段时间了。

通常我们在 Kubernetes 中部署应用需要用 Dockerfile 将业务打成镜像,然后编写 Kubernetes 的 Yaml 部署应用,再结合 Jenkins 的 Pipeline 实现 CI/CD。对于不懂容器的开发者来说,要学习 Dockerfile 语法、K8s Yaml 语法、 Jenkins Pipeline 语法,学习成本有点高。"我还要 Coding 呢!"

本文将分别介绍 如何在 Kubernetes 中部署应用 和 如何在 Rainbond 中部署应用。

在 Kubernetes 中部署应用

在 Kubernetes 中部署一个 Nginx 并通过 NodePort 访问和通过 Ingress 访问。

  1. 创建 nginx-deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80
  1. 创建 nginx-service.yaml,并设置 Service 类型为 NodePort
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  type: NodePort
  selector:
    app: nginx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
      nodePort: 30080
  1. 创建 Nginx Deployment 和 Nginx Service
$ kubectl apply -f nginx-deployment.yaml
$ kubectl apply -f nginx-service.yaml
  1. 创建 Ingress 策略
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: nginx-ingress
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  ingressClassName: nginx-example
  rules:
  - http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: nginx-service
            port:
              number: 80
kubectl apply -f nginx-ingress.yaml

以上就是在 Kubernetes 中部署一个 Nginx 并开启 Nodeport 访问和 Ingress 访问的简单示例,这个过程需要理解 K8s 的资源类型 Deployment Service Ingress,以及资源类型之间如何绑定的等等。这仅仅是冰山一角,对于复杂的业务需要写多个这样的 Yaml 以及理清楚业务之间的依赖关系等。

在 Rainbond 中部署应用

Rainbond 是建立在 Kubernetes 之上的云原生应用管理平台,遵循以应用为中心的概念,其目的就是为了让用户不在编写复杂的 Yaml 文件就能轻松的将自己的业务部署在 Kubernetes 中。

通过一条命令安装 Rainbond Allinone

这里同样也是部署一个 Nginx 并通过 NodePort 访问和通过 Ingress 访问。

  1. 部署 Nginx 应用,在 Rainbond 团队视图内 -> 选择基于镜像创建组件 -> 镜像地址选择 nginx:latest 创建即可。

  1. 开启 Ingress 访问,在 Nginx 组件内 -> 端口 -> 打开对外服务,默认会生成可访问的域名。

  1. 开启 Nodeport 访问,在 应用视图内 -> 网关 -> TCP/UDP -> 添加策略一键绑定 TCP 访问策略。

在 Rainbond 上部署应用只需点点点,了解 Rainbond 的一些概念,零学习成本。文中提到的 Rainbond 的一些概念:

组件: 组件对应 K8s 中的控制器,比如 Deployment、Statefulset 等。

应用: 应用是由多个组件组成的应用,通过一套微服务包含多个组件称之为一个应用。

网关: 网关是 Rainbond 对外访问的入口,域名、Tcp访问都是通过网关生成的访问策略。

还有文中没提到的一些概念,比如:

团队: Rainbond的团队意义上是分配给部门使用的,比如开发部门、测试部门,实际底层上团队对应的是 K8s NameSpace。

最后

在 Kubernetes 中部署应用需要我们大量学习容器、Kubernetes的概念以及 Yaml 语法等等。而在 Rainbond 上部署应用只需要在 UI 界面上点点即可完成部署,这对不懂 K8s 和容器的同学们很友好,可以快速部署自己的业务。

标签:太难,Kubernetes,Rainbond,部署,访问,这篇,nginx,应用,K8s
From: https://www.cnblogs.com/rainbond/p/16617347.html

相关文章

  • 二、chaosblade实现k8s集群操作
    1、执行Kubernetes实验场景,需要提前部署ChaosBladeOperator,Helm安装包下载地址https://github.com/chaosblade-io/chaosblade-operator/releases。使用以下命令安装......
  • 2022-8-23 剑指offer-优先队列(堆)-每日一题-太难不写了
    剑指OfferII061.和最小的k个数对难度中等44收藏分享切换为英文接收动态反馈给定两个以升序排列的整数数组 nums1 和 nums2 , 以及一个整数 k 。定义......
  • Rancher高可用部署(k8s)
    先决条件1、k8s集群2、CLI工具(helm,kubectl)3、IngressController添加HelmChart仓库使用helmrepoadd命令添加含有RancherChart的HelmChart仓库。请将命令中......
  • 二进制部署k8s集群v1.23.9版本-13-安装CoreDns插件
    13.1、CoreDns概述简介:k8s的服务发现插件-CoreDnsCoreDns其实就是将service的名字和cluster-ip做一个自动关联部署k8s的内网资源配置清单http服务在192.168.1.200运......
  • k8s statefulset创建有状态服务
    创建pv            yaml挂载使用     storageclass动态挂载, storageclassName为nfs-storageclass   ......
  • k8s-mtu设置不当引发的线上故障
    背景在部署新的paas平台线上环境时,突发consul和es中间件无法创建。排查过程以consul通过查询k8s集群中pod状态发现原来3pod的consul集群,其中2个pod一直重启。#kubect......
  • K8s 删除Terminating状态Pod
    K8s删除Terminating状态Pod删除nfs的svc之后删除pod一直卡在Terminating状态  分析无法删除的原因在了解以上机制后,对象无法删除无外乎以下两个原因:对象存在fi......
  • k8s部署Wordpress(定义不同的资源对象文件)
    1)新建namespace(名称空间)新建wordpress-blognamespace,将应用都部署到wordpress-blog这个命名空间下面。[23:17:36root@k8s-master~]#llnamespace.yamlpod.ymlse......
  • k8s--HPA 控制器
    HorizontalPodAutoscaler(HPA)控制器介绍在前面的学习中,我们已经可以实现通过手工执行kubectlscale命令实现pod扩容或缩容,但是这显示不符合kubernetes的定位目......
  • k8s
    架构与组件Master——控制节点APIServer,由API组件构成,负责提供API服务Scheduler,负责集群调度ControllerManagerNode——计算节点,本质是通过各种协议对简单容......