mysql Opencv Cluster模式 html elasticsearch debugging canvas layer playframework transactions GMU vue状态管理 vue的钩子函数 photoshop cs3 教程 广告投放系统源码 jquery循环 jq第一个子元素 c语言求和 idea整理代码格式 js对象添加元素 python刷题 maven插件 mysql删除表 python文件写入 python调用函数 java8特性 linux入门 嵌入式linux驱动程序设计从入门到精通 matlab2016a安装教程 电池救星 相关软件 typemonkey 战地联盟辅助 teraterm 位置不可用 2700U js文件上传 捷速pdf编辑器 js文件上传插件 安卓人脸识别
当前位置: 首页 > 学习教程  > 编程语言

Kubernetes入门:最基本的goweb部署

2020/9/19 13:33:31 文章标签:

文章目录

  • go代码
  • 制作程序镜像
  • 创建镜像
  • 测试镜像
  • 将goweb镜像推送的DockerHub上

尝试做一个Go应用程序的Docker镜像,把它部署到Kubernetes上运行。

go代码

创建Web.go

vim Web.go

如下图编写

package main

import (
        "fmt"
        "log"
        "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
        fmt.Fprintf(w, "欢迎使用Go语言")
}

func main() {
        http.HandleFunc("/", handler)
        fmt.Println("服务端口:8080")                 //控制台输出信息
        err := http.ListenAndServe(":8080", nil) //设置监听的端口
        if err != nil {
                log.Fatal("ListenAndServe: ", err)
        }
}

制作程序镜像

编写dockerfile

FROM golang:latest

MAINTAINER Razil "511728892@qq.com"

WORKDIR /usr/local/goweb/hellodocker
ADD . /usr/local/goweb/hellodocker
RUN go build .

EXPOSE 8080

ENTRYPOINT ["./hellodocker"]

创建镜像

docker build -t goweb .

别忘了后面有一个点 .

docker build :构建镜像
goweb: 名字为goweb
. (点号):dockerfile目录为当前目录
然后就会如下图开始构建镜像

Sending build context to Docker daemon  4.096kB
Step 1/7 : FROM golang:latest
 ---> 05c8f6d2538a
Step 2/7 : MAINTAINER Razil "511728892@qq.com"
 ---> Running in f5de5c4df6ee
Removing intermediate container f5de5c4df6ee
 ---> 4f4b66b2928e
Step 3/7 : WORKDIR /usr/local/goweb/hellodocker
 ---> Running in d483900b79d4
Removing intermediate container d483900b79d4
 ---> 811d05164139
Step 4/7 : ADD . /usr/local/goweb/hellodocker
 ---> 6514f1fa13a8
Step 5/7 : RUN go build .
 ---> Running in 7a1bad7df5ea
Removing intermediate container 7a1bad7df5ea
 ---> 281a1e178076
Step 6/7 : EXPOSE 8080
 ---> Running in 14fb90173498
Removing intermediate container 14fb90173498
 ---> 70e5c460347f
Step 7/7 : ENTRYPOINT ["./hellodocker"]
 ---> Running in 997cbf2145c3
Removing intermediate container 997cbf2145c3
 ---> a4547611b8d4
Successfully built a4547611b8d4
Successfully tagged goweb:latest

测试镜像

docker run -p 8080:8080 hellodocker

在浏览器输入masterip:8080
在这里插入图片描述
测试成功

将goweb镜像推送的DockerHub上

在Dockerhub上创建账号
我的账号是13806610088

首先为镜像打上标签

docker tag goweb 13806610088/k8s:goweb

然后登陆DockerHub

docker login

输入自己的账号密码
Login Succeeded 连接成功后
push自己的镜像到DockerHub上

docker push 13806610088/k8s:goweb

上传速度很慢而且很容易失败,失败后多次尝试
在这里插入图片描述
若多次尝试还是失败后可转用阿里云仓库
使用上面定义的goweb.yaml创建Deployment对象来运行Go应用程序的容器:

kubectl create -f goweb.yaml

在这里插入图片描述
创建成功

应用部署完后还不能从外部直接访问,需要把刚才Deployment对象运行的应用程序作为Kubernetes的一个Service对外暴露。

kubectl expose deployment goweb --type=NodePort --name=goweb-svc --target-port=8080

查看

kubectl get svc

在这里插入图片描述
可以看到主机的31551端口映射到了Kubernetes运行着应用的容器的8080端口。在浏览器里使用Kubernetes集群IP加NodePort即可访问到Kubernetes部署的Go应用程序。
在这里插入图片描述
成功!


本文链接: http://www.dtmao.cc/news_show_200022.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?