首先编写Go HTTP服务并生成go.mod文件,接着使用多阶段Dockerfile构建轻量镜像,推送至镜像仓库后,通过deployment.yaml定义包含两个副本的Deployment和LoadBalancer类型Service,最后用kubectl apply部署,查看Pod和服务状态,获取外部IP访问应用。

在Kubernetes中运行Golang应用,核心是把Go程序打包成容器镜像,再通过Kubernetes部署管理。整个过程包括编写Go代码、构建镜像、推送到镜像仓库,最后用YAML定义Deployment和服务。
编写Golang应用
一个简单的HTTP服务示例如下:
package mainimport ("fmt""net/http")
func handler(w http.ResponseWriter, r *http.Request) {fmt.Fprintf(w, "Hello from Go in Kubernetes!")}
func main() {http.HandleFunc("/", handler)http.ListenAndServe(":8080", nil)}
确保go.mod文件存在,可通过go mod init myapp生成。
构建Docker镜像
创建Dockerfile,使用多阶段构建减小镜像体积:
立即学习“go语言免费学习笔记(深入)”;
FROM golang:1.21 AS builderWORKDIR /appCOPY . .RUN go build -o main .FROM alpine:latest
RUN apk --no-cache add ca-certificatesWORKDIR /root/COPY --from=builder /app/main .EXPOSE 8080CMD ["./main"]
构建并打标签:
docker build -t your-registry/go-app:v1 .
推送至镜像仓库(如Docker Hub或私有Registry):
docker push your-registry/go-app:v1
编写Kubernetes部署文件
创建deployment.yaml:
apiVersion: apps/v1kind: Deploymentmetadata: name: go-appspec: replicas: 2 selector: matchLabels: app: go-app template: metadata: labels: app: go-app spec: containers: - name: go-app image: your-registry/go-app:v1 ports: - containerPort: 8080---apiVersion: v1kind: Servicemetadata: name: go-app-servicespec: type: LoadBalancer selector: app: go-app ports: - protocol: TCP port: 80 targetPort: 8080
该配置会启动两个Pod实例,并通过LoadBalancer暴露服务。
部署到Kubernetes
使用kubectl应用配置:
kubectl apply -f deployment.yaml
查看Pod状态:
kubectl get pods
查看服务外部IP:
kubectl get service go-app-service
拿到IP后,在浏览器访问即可看到输出内容。
基本上就这些。只要镜像能正常运行,Kubernetes就能调度和管理你的Go服务。后续可结合ConfigMap管理配置、使用Ingress统一入口或添加健康检查提升稳定性。不复杂但容易忽略细节,比如镜像拉取策略和网络策略。
以上就是Golang环境搭建如何在Kubernetes中使用的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1415491.html
微信扫一扫
支付宝扫一扫