阿里云K8S部署Go+Vue项目

这篇具有很好参考价值的文章主要介绍了阿里云K8S部署Go+Vue项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

        Kubernetes是一个可以移植、可扩展的开源平台,使用声明式的配置并依据配置信息自动地执行容器化应用程序的管理。在所有的容器编排工具中(类似的还有 docker swarm / mesos等),Kubernetes的生态系统更大、增长更快,有更多的支持、服务和工具可供用户选择。

优势:

  • 敏捷地创建和部署应用程序:相较于创建虚拟机镜像,创建容器镜像更加容易和快速
  • 持续构建集成:可以更快更频繁地构建容器镜像、部署容器化的应用程序、并且轻松地回滚应用程序
  • 分离开发和运维的关注点:在开发构建阶段就完成容器镜像的构建,构建好的镜像可以部署到多种基础设施上。这种做法将开发阶段需要关注的内容包含在如何构建容器镜像的过程中,将部署阶段需要关注的内容聚焦在如何提供基础设施以及如何使用容器镜像的过程中。降低了开发和运维的耦合度
  • 可监控性:不仅可以查看操作系统级别的资源监控信息,还可以查看应用程序健康状态以及其他信号的监控信息
  • 开发、测试、生产不同阶段的环境一致性:开发阶段在笔记本上运行的容器与测试、生产环境中运行的容器一致
  • 跨云服务商、跨操作系统发行版的可移植性:容器可运行在 Ubuntu、RHEL、CoreOS、CentOS等不同的操作系统发行版上,可以运行在私有化部署以及不同的云供应商的环境中
  • 以应用程序为中心的管理:虚拟机时代的考虑的问题是在虚拟硬件上运行一个操作系统,而容器化时代,问题的焦点则是在操作系统的逻辑资源上运行一个应用程序
  • 松耦合、分布式、弹性、无约束的微服务:应用程序被切分成更小的、独立的微服务,并可以动态部署和管理,而不是一个部署在专属机器上的庞大的单片应用程序
  • 资源隔离:确保应用程序性能不受干扰
  • 资源利用:资源高效、高密度利用

一、构建Go服务镜像

1.Go项目主要文件

vue项目部署到阿里kubernetes,Go,Kubernetes,阿里云,云计算,K8S,Go,Vue

2.简单Go项目

简单Go项目,主要提供一个登录接口,给后端Vue项目调用,运行时监听8881端口。

package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

type User struct {
	ID       int64  `json:"id"`
	Username string `json:"username"`
	Password string `json:"password"`
	Email    string `json:"email"`
}

func main() {
	router := gin.Default()

	router.Any("/", func(c *gin.Context) {
		c.String(http.StatusOK, "Joy")
	})

	// 登录
	router.POST("/admin/login", userLogin)

	router.Run(":8881")
}

func userLogin(c *gin.Context) {
	var user User
	if err := c.ShouldBind(&user); err != nil {
		c.JSON(http.StatusOK, gin.H{
			"code": 1,
			"msg":  "params error",
			"data": err.Error(),
		})
		return
	}

	if user.Username != "admin" || user.Password != "123456" {
		c.JSON(http.StatusOK, gin.H{
			"code": 1,
			"msg":  "account or password error",
			"data": nil,
		})
		return
	}

	c.JSON(http.StatusOK, gin.H{
		"code": 0,
		"msg":  "success",
		"data": map[string]interface{}{
			"id":       1,
			"username": user.Username,
			"email":    "123456@qq.com",
			"token":    "123456",
		},
	})
}

3.编写Dockerfile

# 声明镜像来源为golang:alpine
FROM golang:alpine  AS builder

# 定义变量属性值
ENV CGO_ENABLED 0
ENV GOOS linux
ENV GOPROXY https://goproxy.cn,direct

# 声明工作目录
WORKDIR /go/src/joy

# 拷贝整个项目到工作目录
COPY . .

# 编译项目文件
RUN go build -ldflags="-s -w" -o /go/src/joy/main ./main.go

##### 第二阶段构建 #####

# 声明镜像来源为alpine:latest
FROM alpine:latest

# 镜像编写者及邮箱
LABEL MAINTAINER="xxx@qq.com"

# 声明工作目录
WORKDIR /go/src/joy

# 拷贝/go/src/joy文件夹下文件到当前工作目录
COPY --from=builder /go/src/joy/main ./main

# 声明容器的服务端口(仅仅是声明)
EXPOSE 8881

# 运行打包好的二进制
CMD ["./main"]

4.构建镜像

 此处是在项目目录下进行,且我之前一登录Dockerhub;如果你没有登录Dockerhub;先执行 "docker login -u 用户名 -p 密码"登录Dockerhub;如果你使用私有库存,需要改对应镜像名称

# 构建(-f 指定dockerfile -t dockerhub用户名/仓库名:Tag)
docker build -f Dockerfile -t babytime2019/joy:v1.0.0 .
# 推送
docker push babytime2019/joy:v1.0.0

vue项目部署到阿里kubernetes,Go,Kubernetes,阿里云,云计算,K8S,Go,Vue

二、构建Vue项目镜像

1.Vue项目主要文件

此Vue接口统一前缀统计admin开始()

vue项目部署到阿里kubernetes,Go,Kubernetes,阿里云,云计算,K8S,Go,Vue

2.配置Nginx文件

 server {
    listen       8080;
    server_name localhost;

    #charset koi8-r;
    #access_log  logs/host.access.log  main;

    location / {
        root /usr/share/nginx/html;
        add_header Cache-Control 'no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0';
        try_files $uri $uri/ /index.html;
    }
 }

3.编写Dockerfile

# 声明镜像来源为node:14.17.4
FROM node:14.17.4 AS builder

# 声明工作目录
WORKDIR /www/
# 拷贝整个web项目到当前工作目录
COPY . .
# 使用npm进行安装依赖&编译打包文件
RUN npm install --registry=http://registry.npm.taobao.org && npm run build

#################### 第二阶段构建 ####################

# 声明镜像来源为nginx:alpine, alpine 镜像小
FROM nginx:alpine

# 镜像维护者姓名或邮箱地址
LABEL MAINTAINER="xxx@qq.com"

# 从deploy/docker/nginx/conf.d目录拷贝my.conf到容器内的/etc/nginx/conf.d/my.conf
COPY deploy/docker/nginx/conf.d/my.conf /etc/nginx/conf.d/my.conf

# 从第一阶段进行拷贝编译好的文件到/usr/share/nginx/html
COPY  --from=builder /www/dist /usr/share/nginx/html

# 查看/etc/nginx/nginx.conf文件(可以不加)
RUN cat /etc/nginx/conf.d/my.conf

# 查看 /etc/nginx/conf.d/my.conf(可以不加)
RUN cat /etc/nginx/conf.d/my.conf

# 查看 文件是否拷贝成功(可以不加)
RUN ls -al /usr/share/nginx/html

4.构建镜像

 此处是在项目目录下进行,且我之前一登录Dockerhub;如果你没有登录Dockerhub;先执行 "docker login -u 用户名 -p 密码"登录Dockerhub;如果你使用私有库存,需要改对应镜像名称

# 构建(-f 指定dockerfile -t dockerhub用户名/仓库名:Tag)
docker build -f Dockerfile -t babytime2019/joy-manage:v1.0.0 .
# 推送
docker push babytime2019/joy-manage:v1.0.0

三、阿里云部署Go+Vue

1.进入阿里云K8s集群

此处我已创建K8s集群,这里不详细说明创建过程,大家可以看阿里云官方文档

vue项目部署到阿里kubernetes,Go,Kubernetes,阿里云,云计算,K8S,Go,Vue

 2.创建集群命名空间

创建命名空间,主要时为了达到项目隔离的目的

vue项目部署到阿里kubernetes,Go,Kubernetes,阿里云,云计算,K8S,Go,Vue

3.创建Go服务应用

vue项目部署到阿里kubernetes,Go,Kubernetes,阿里云,云计算,K8S,Go,Vue

 vue项目部署到阿里kubernetes,Go,Kubernetes,阿里云,云计算,K8S,Go,Vue

 vue项目部署到阿里kubernetes,Go,Kubernetes,阿里云,云计算,K8S,Go,Vue

 vue项目部署到阿里kubernetes,Go,Kubernetes,阿里云,云计算,K8S,Go,Vue

 创建成功之后,我们会看到两个Pod,如果都处于"Running"状态,说明服务正常其中。

vue项目部署到阿里kubernetes,Go,Kubernetes,阿里云,云计算,K8S,Go,Vue

 4.创建Go项目的Service

vue项目部署到阿里kubernetes,Go,Kubernetes,阿里云,云计算,K8S,Go,Vue

5.创建Go项目的Ingress

设置路径"/admin",匹配"/admin"开头的路劲,都走此服务。"www.babytime.vip"和Ingress中公网IP已解析,大家可以直接用生成的公网访问应用。

6.创建Vue服务应用

vue项目部署到阿里kubernetes,Go,Kubernetes,阿里云,云计算,K8S,Go,Vue

vue项目部署到阿里kubernetes,Go,Kubernetes,阿里云,云计算,K8S,Go,Vue

 vue项目部署到阿里kubernetes,Go,Kubernetes,阿里云,云计算,K8S,Go,Vue

 vue项目部署到阿里kubernetes,Go,Kubernetes,阿里云,云计算,K8S,Go,Vue

7.配置Vue项目的Service

vue项目部署到阿里kubernetes,Go,Kubernetes,阿里云,云计算,K8S,Go,Vue

 8.修改Vue项目的Ingress

vue项目部署到阿里kubernetes,Go,Kubernetes,阿里云,云计算,K8S,Go,Vue

9.访问应用

vue项目部署到阿里kubernetes,Go,Kubernetes,阿里云,云计算,K8S,Go,Vue

 vue项目部署到阿里kubernetes,Go,Kubernetes,阿里云,云计算,K8S,Go,Vue

 文章来源地址https://www.toymoban.com/news/detail-794162.html

到了这里,关于阿里云K8S部署Go+Vue项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • kubernetes(k8s) 安装与部署

    版本:kubernetes(k8s) v1.28.2 并准备主机名映射。 设置好静态IP。 在Ubuntu的/etc/hosts文件中,填入如下内容。也可以在Windows的C:WindowsSystem32driversetchosts文件中填写相同内容。 关闭防火墙和SELinux。 关闭防火墙命令如下。 可使用命令 systemctl status firewalld 查看防火墙状态。 关闭

    2024年02月03日
    浏览(64)
  • Kubernetes(K8s)基本环境部署

    此处只做学习使用,配置单master环境。 1、ip+主机规划(准备五台新机)==修改各个节点的主机名 注意:关闭防火墙与selinux 节点 主机名 ip 身份 joshua1 kubernetes-master.openlab.cn 192.168.134.151 master joshua2 kubernetes-work1.openlab.cn 192.168.134.152 work1 joshua3 kubernetes-work2.openlab.cn 192.168.134.153

    2024年02月10日
    浏览(58)
  • kubernetes(k8s)+kubesphere部署

    目录 一 装备三台机器linux(centos) 二 准备前置环境并安装kubernetes 1  三台机器都要做如下操作  1.1 关闭防火墙: 1.2 关闭 selinux: 1.3 关闭 swap 1.4 添加主机名与 IP 对应关系 1.5 date 查看时间 (可选) 1.6 卸载系统之前的 docke 命令自行百度不做说明 1.7 安装 Docker-CE  1. 7.1 装

    2024年01月17日
    浏览(72)
  • Kubernetes(k8s)部署模式发展

    在部署应用程序的方式上,主要经历了三个时代: 传统部署: 互联网早期,会直接将应用程序部署在物理机上 优点:简单,不需要其它技术的参与 缺点:不能为应用程序定义资源使用边界,很难合理地分配计算资源,而且程序之间容易产生影响 虚拟化部署: 可以在一台物

    2024年02月11日
    浏览(48)
  • Kubernetes(k8s)集群安装部署

    名称 IP 系统 配置 主控节点 192.168.202.101 CentOS 7.9.2009 2核4G 工作节点1 192.168.202.102 CentOS 7.9.2009 2核4G 工作节点2 192.168.202.103 CentOS 7.9.2009 2核4G 2.1 升级操作系统内核 导入elrepo gpg key 安装elrepo YUM源仓库 安装kernel-ml版本,ml为长期稳定版本,lt为长期维护版本 设置grub2默认引导为0 重

    2024年02月10日
    浏览(80)
  • Kubernetes(k8s)部署DolphinScheduler

    本次安装环境为:3台k8s+现有的mysql数据库+nfs DolphinScheduler-3.2.0官网:https://dolphinscheduler.apache.org/zh-cn/download/3.2.0 官网安装文档:https://dolphinscheduler.apache.org/zh-cn/docs/3.2.0/guide/installation/kubernetes#appendix-configurationr 默认k8s集群已经安装完成,本次已腾讯的TKE为例介绍 参考腾讯TK

    2024年01月19日
    浏览(66)
  • Kubernetes(k8s)集群部署----->超详细

    💖The Begin💖点点关注,收藏不迷路💖 Kubernetes(简称k8s)是一个开源的容器编排平台,可以帮助开发人员和运维团队更轻松地管理容器化应用程序。本文将详细介绍如何进行k8s集群的部署,以帮助读者快速搭建一个高可用、可伸缩的k8s集群。 1、操作系统:至少三台物理机或

    2024年02月05日
    浏览(65)
  • Kubernetes(K8S)单机版部署

    1.虚拟机部署Kubernetes(K8S)_生骨大头菜的博客-CSDN博客,首先按照这里部署好k8s服务,但是只需要部署一台master服务器就可以 2.默认k8s的master节点是不能跑pod的业务,需要执行以下命令解除限制 3. 如果需要保留其他子节点但是想将pod调度到master节点上,可以进行上述命令后

    2024年02月11日
    浏览(59)
  • yum部署kubernetes(k8s)集群、k8s常用资源管理

    目录 一、环境搭建 1、准备环境 1)计算机说明,建议系统版本7.4或者7.6 2)修改所有主机的计算机名设置host文件  2、安装master节点 1)安装etcd配置etcd 2)安装k8s-master节点 3)配置apiserver 4)配置controller和scheduler 5)启动k8s服务 3、安装k8s-master上的node 1)安装node 2)配置kube

    2024年02月13日
    浏览(64)
  • 云原生Kubernetes:阿里云托管k8s集群ACK创建和使用

    目录   一、理论 1.容器服务Kubernetes版 2.ACK Pro版集群概述 3.ACK版本说明 二、实验 1.创建专有版Kubernetes集群 三、问题 1.依赖检查未通过   (1)概念 阿里云容器服务Kubernetes版(Alibaba Cloud Container Service for Kubernetes,简称容器服务ACK)是全球首批通过Kubernetes一致性认证的服务平

    2024年02月13日
    浏览(79)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包