Go开发运维:Go服务发布到K8S集群

目录

一、实验

1.Go服务发布到k8s集群

二、问题

1.如何从Harbor拉取镜像

一、实验

1.Go服务发布到k8s集群

(1)linux机器安装go(基于CentOS 7系统)

yum install go -y

(2)查看版本

go version

(3)创建源码文件

[root@master1 ~]# mkdir test
[root@master1 ~]# cd test/
[root@master1 test]# cat main.go 
package mainimport ("net/http""github.com/gin-gonic/gin"
)func statusOKHandler(c *gin.Context) {c.JSON(http.StatusOK, gin.H{"status": "success~welcome to study"})
}func versionHandler(c *gin.Context) {c.JSON(http.StatusOK, gin.H{"version": "v1.1版本"})
}func main() {router := gin.New()router.Use(gin.Recovery())router.GET("/", statusOKHandler)router.GET("/version", versionHandler)router.Run(":8080")
}

 注意这里有小括号:

这里有2个双引号

(4)Go mod初始化项目

go mod init test

(5)设置代理

go env -w GOPROXY=https://goproxy.cn,direct

go mod tidy

(6)构建源码

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o k8s-demo main.go

K8s-demo 为二进制文件:

(7)编写dockerfile文件

实现功能:容器里封装二进制代码

[root@master1 test]# cat Dockerfile 
FROM alpine
ADD k8s-demo /data/app/
WORKDIR /data/app/
CMD ["/bin/sh","-c","./k8s-demo"]

(8)构建镜像

docker build -t david/k8sdemo:v1 .

(9)打包镜像,传到k8s工作节点

docker save -o k8sdemo.tar.gz david/k8sdemo:v1

scp k8sdemo.tar.gz node1:/root/

(10)在node1节点解压镜像

docker load -i k8sdemo.tar.gz

(11)创建deployment的yaml文件

[root@master1 test]# cat k8s.yaml apiVersion: apps/v1kind: Deploymentmetadata:name: k8s-demonamespace: defaultlabels:app: k8s-demospec:selector:matchLabels:app: k8s-demoreplicas: 4template:metadata:labels:app: k8s-demospec:containers:- image: david/k8sdemo:v1imagePullPolicy: IfNotPresentname: k8s-demoports:- containerPort: 8080protocol: TCPresources:limits:cpu: 100mmemory: 100Mirequests:cpu: 50mmemory: 50MilivenessProbe:tcpSocket:port: 8080initialDelaySeconds: 10timeoutSeconds: 3readinessProbe:httpGet:path: /port: 8080initialDelaySeconds: 10timeoutSeconds: 2---apiVersion: v1kind: Servicemetadata:name: k8s-demo-svcnamespace: defaultlabels:app: k8s-demospec:ports:- name: apiport: 8080protocol: TCPtargetPort: 8080selector:app: k8s-demo

(12)更新yaml文件

kubectl apply -f k8s.yaml

(13)查看pod和svc

kubectl get pods

kubectl get svc

(14)修改svc的type类型变成nodePort

kubectl edit svc k8s-demo-svc

修改前:

修改后:

(15)查看svc

kubectl get svc

(16)浏览器访问测试

二、问题

1.如何从Harbor拉取镜像

(1)每个节点修改配置文件

vim /etc/docker/daemon.json
#增加如下代码:"log-driver": "json-file",
"log-opts": {"max-size": "100m"},  "insecure-registries": ["https://192.168.204.110"]

(2)Harbor新建项目

(3)查看镜像

docker images

(4)新打标签

docker tag david/k8sdemo:v1 192.168.204.110/david-project/k8sdemo:v1

(5)如遇到Harbor登录不了

(6)启动

cd /data/install/harbor
docker-compose start

(7)成功

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/263482.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数电笔记】54-或非门构成的基本RS触发器

目录 说明: 1. 电路组成 2. 逻辑功能 3. 特性表 4. 特性方程 5. 例题 6. 两种基本RS触发器的形式比 说明: 笔记配套视频来源:B站;本系列笔记并未记录所有章节,只对个人认为重要章节做了笔记;标题前…

万户 ezOFFICE 文件上传漏洞复现

0x01 产品简介 万户OA ezoffice是万户网络协同办公产品多年来一直将主要精力致力于中高端市场的一款OA协同办公软件产品,统一的基础管理平台,实现用户数据统一管理、权限统一分配、身份统一认证。统一规划门户网站群和协同办公平台,将外网信息维护、客户服务、互动交流和日…

(三潮来袭)探寻2023年科技变革潮流与2024年前瞻展望

2023年对于IT行业来说是一个动荡而又充满变革的一年。随着世界逐渐走出前几年的挑战,企业逐渐复苏,但这个行业仍然在经历着激烈的变革。在这个时候,我们看到了一些引人注目的技术变化和未来的趋势。 一、2023年回顾 关键词:Chat…

计算机基础知识66

Auth的补充 #概念:是django 的一个app,关于用户的登录,退出,注册... # 配置文件中配置:表会被迁移 INSTALLED_APPS [django.contrib.auth,] # auth有哪些表---权限控制: Permission:auth_permi…

linux Ubuntu下,第一个C++程序访问数据库,遇到的问题,及解决办法

在ubuntu下安装了mysql&#xff0c;mysql以后&#xff0c;编写了第一个访问数据库的程序&#xff1a; #include <iostream> #include <string> #include <cstdlib> //for system #include <mysql.h>using namespace std;int main() {mysqlpp::Connect…

所有行业的最终归宿-我有才打造知识付费平台

随着科技的不断进步和全球化的加速发展&#xff0c;我们生活在一个信息爆炸的时代。各行各业都在努力适应这一变化&#xff0c;寻找新的商业模式和增长机会。在这个过程中&#xff0c;一个趋势逐渐凸显出来&#xff0c;那就是知识付费。可以说&#xff0c;知识付费正在成为所有…

代码随想录第二十八天(一刷C语言)|买卖股票的最佳时机II跳跃游戏跳跃游戏II

创作目的&#xff1a;为了方便自己后续复习重点&#xff0c;以及养成写博客的习惯。 一、买卖股票的最佳时机II 思路&#xff1a;参考carl文档 把利润分解为每天为单位的维度&#xff0c;而不是从 0 天到第 3 天整体去考虑。局部最优&#xff1a;收集每天的正利润&#xff0c…

淘宝权益玩法平台的Serverless化实践

通过对权益玩法平台现有业务应用的Serverless化改造&#xff0c;权益团队在双十一期间完美地支撑了业务需求&#xff0c;在研发效率、运维保障等方面都体现出了很高的价值和收益。 项目背景 淘宝权益平台是负责淘宝权益营销的核心团队&#xff0c;团队除了负责拉菲权益平台外&a…

hive 命令行中使用 replace 和nvl2 函数报错

1.有时候在命令行的情况下使用 replace 函数时会报错 这个时候可以使用 translate 代替 2.有时候使用 nvl2() 函数的时候会报错 这个时候可以用 case when 来代替

【SQL开发实战技巧】系列(四十九):Oracle12C常用新特性☞表分区部分索引(Partial Indexes)

系列文章目录 【SQL开发实战技巧】系列&#xff08;一&#xff09;:关于SQL不得不说的那些事 【SQL开发实战技巧】系列&#xff08;二&#xff09;&#xff1a;简单单表查询 【SQL开发实战技巧】系列&#xff08;三&#xff09;&#xff1a;SQL排序的那些事 【SQL开发实战技巧…

windows查看GPU信息(nvidia-smi)及tensorflow-gpu的安装

目录 安装tensorflow-gpu 在命令行输入 nvidia-smi 上图红框内容分别为&#xff1a;显存使用/显存大小&#xff0c;右侧为GPU使用率。 安装tensorflow-gpu pip install tensorflow-gpu2.6.0

博士论文查重【保姆教程】

大家好&#xff0c;今天来聊聊博士论文查重&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff1a; 博士论文查重&#xff1a;确保学术诚信的重要环节 引言 博士论文是博士研究生学术研究成果的重要体现&#x…