乐趣区

关于kubernetes: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 和容器的同学们很敌对,能够疾速部署本人的业务。

退出移动版