作为目前最主流的容器编排平台,Kubernetes 已作为基础设施,承接并管理着众多的应用服务,相对于传统基于 VM 镜像部署应用,其具有更丰富、完善的服务编排及托管能力。不过,对于仅有少量应用需要部署或者仅需要开发、测试环境的用户而言,搭建、配置完整的 Kubernetes 集群是一个比较繁琐和复杂的过程,初学者很容易耗费大量的时间、资源,且收益有限。最近 Lighthouse 推出了 K3s 应用镜像,为用户提供了开箱即用的 Kubernetes 环境。作为轻量的 Kubernetes 发行版,K3s 通过了 CNCF 一致性认证,并针对多个场景进行了高度优化,此外 Lighthouse 还在应用镜像中集成了 Kubernetes-dashboard,方便用户通过浏览器进行集群、应用的管理。本文为大家介绍一下,如何使用 Lighthouse K3s 部署、管理您的应用。
K3s 是由 Rancher Labs 发布的一款开源、极轻量的 Kubernetes 发行版。在 Kubernetes 基础上,删除了一些 feature:
在功能层面删除了非必要的服务/功能,其中包括 kubernetes 部分未稳定以及非正式的开发版本功能,进行如此剪裁,不仅可以降低出故障的机率,也可以降低整体 kubernetes 管控面的资源消耗。以上共 5 个 feature,所以也因此得名 K3s。此外,针对资源有限的应用场景,K3s 增加了:
K3s 中包含了我们所熟悉的 kubernetes 的各个组件,为了能做到 "Simplified installation”, K3S 将所有组件都集成在一个二进制包中(<100MB),此外默认安装 Flannel 作为 CNI plugin,替换 docker 使用更为轻量级、底层的 containerd,以及使用 SQLite3 替换 etcd 作为元数据的存储等。
通过上述裁剪以及优化,K3s 不仅免去了 kubernetes 安装环节的复杂、繁琐步骤,为用户提供了开箱即用的部署体验,还可以在资源有限环境下,仍能为用户提供良好运行的 kubernetes 集群,保持了与 kubernetes 一致的使用体验。
我们首先在腾讯云Lighthouse轻量应用服务器购买页面,购买一台服务器。如下图所示。
服务器的具体配置如下:
点击“立即购买”,付款之后服务器就开始创建了。当服务器状态为“运行中”时,我们就可以使用了。
默认 Kubernetes-dashboard 监听在 9090 端口,因此,我们需要在防火墙开通 9090 端口的访问。在"应用管理"页,Lighthouse 也为用户提供了操作指引:
点击"确定“,至此,用户便可访问图中所示访问地址访问 Kubernetes-dashboard 了。
Kubernetes-dashboard 的登录需要用户提供 token,而 token 需要登录到服务器内部才能获取。点击下图中所示“登录”按钮,一键登录至服务器,点击复制 " dashboard-token",在服务器中运行,输出即为所需的登录 token,复制并粘贴至上图 "Enter token" 输入框里。
点击 Sign In 按钮,登录成功!
至此用户便可以使用 Kubernetes-dashboard 部署及管理应用了。
下面将展示如何在 K3s 上部署 wordpress,访问 Kubernetes-dashboard,点击右上角 "+"
将下面的 yaml 复制至编辑框
apiVersion: v1 kind: Service metadata: name: wordpress labels: app: wordpress spec: ports: - port: 80 selector: app: wordpress tier: frontend --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: wp-pv-claim labels: app: wordpress annotations: volume.beta.kubernetes.io/storage-provisioner: rancher.io/local-path spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: wordpress labels: app: wordpress spec: selector: matchLabels: app: wordpress tier: frontend strategy: type: Recreate template: metadata: labels: app: wordpress tier: frontend spec: containers: - image: wordpress:4.8-apache name: wordpress env: - name: WORDPRESS_DB_HOST value: wordpress-mysql - name: WORDPRESS_DB_PASSWORD valueFrom: secretKeyRef: name: mysql-pass key: password ports: - containerPort: 80 name: wordpress volumeMounts: - name: wordpress-persistent-storage mountPath: /var/www/html volumes: - name: wordpress-persistent-storage persistentVolumeClaim: claimName: wp-pv-claim --- apiVersion: v1 kind: Service metadata: name: wordpress-mysql labels: app: wordpress spec: ports: - port: 3306 selector: app: wordpress tier: mysql clusterIP: None --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: mysql-pv-claim labels: app: wordpress spec: accessModes: - ReadWriteOnce resources: requests: storage: 20Gi --- apiVersion: apps/v1 kind: Deployment metadata: name: wordpress-mysql labels: app: wordpress spec: selector: matchLabels: app: wordpress tier: mysql strategy: type: Recreate template: metadata: labels: app: wordpress tier: mysql spec: containers: - image: mysql:5.6 name: mysql env: - name: MYSQL_ROOT_PASSWORD valueFrom: secretKeyRef: name: mysql-pass key: password livenessProbe: tcpSocket: port: 3306 ports: - containerPort: 3306 name: mysql volumeMounts: - name: mysql-persistent-storage mountPath: /var/lib/mysql volumes: - name: mysql-persistent-storage persistentVolumeClaim: claimName: mysql-pv-claim --- apiVersion: v1 kind: Secret metadata: name: mysql-pass data: password: MWYyZDFlMmU2N2Rm --- apiVersion: networking.k8s.io/v1beta1 kind: Ingress metadata: name: ingress annotations: kubernetes.io/ingress.class: "traefik" spec: rules: - http: paths: - path: / backend: serviceName: wordpress servicePort: 80
在这个示例中:
点击 Upload 开始部署,等待部署完成
2. 访问 http://${实例公网 IP}/ 进入 wordpress 管理界面
3. 当我们需要更新应用时,可以直接在面板上直接编辑对应的 Deployment
修改 resources 配置,点击 "Update" 按钮,Kubernetes 将会更新/升级 Deployment,需要补充的是
更新成功!
本文展示了 Lighthouse K3s 应用镜像的使用方法,并通过 wordpress 的应用部署示例,展示了如何使用 Kubernetes-dashboard 部署、管理应用。如果您想要一个快速且简单的 Kubernetes 环境,用来学习 Kubernetes,或者用来开发、测试、部署应用,Lighthouse 应用服务器(K3s 应用镜像)都将会非常适合您!快来试一下吧!
Docker生成新镜像版本的两种方式 There are two ways Docker can generate new m...
本文整理自直播《Hologres 数据导入/导出实践-王华峰(继儒)》 视频链接: https:/...
摘要 元旦期间 订单业务线 告知 推送系统 无法正常收发消息,作为推送系统维护者...
前提条件 请您在购买前确保已完成注册和充值。详细操作请参见 如何注册公有云管...
建站 什么 虚拟主机 够用?这要看搭建的是什么类型的网站。比如个人博客类型的网...
在Python语言中有如下3种方法: 成员方法 类方法(classmethod) 静态方法(staticm...
从 10.0.0 版开始,异步迭代器就出现在 Node 中了,在本文中,我们将讨论异步迭...
信息化2.0时代提出开展智慧教育创新发展行动。2019年2月,中共中央、国务院印发...
2021年3月24日,主题为《数据的世界,世界的数据》的星环科技2021春季新品发布会...
【51CTO.com快译】 数据可视化工具不断发展,提供更强大的功能,同时改善可访问...