本地k8s部署测试go应用程序

前言,本文尝试将写好的go程序,打包成docker,然后在k8s运行。需要注意的问题是,环境变量配置、日志文件、私有仓库拉取镜像,仅做本地开发测试k8s使用。

 一、先创建k8s的pv/pvc,因为此前用json文件做配置和日志文件的问题,需用到k8s的subpath,相当于docker容器映射物理机卷。

1、先编辑好两个yaml文件

sudo vim pv-subpath.yaml

kind: PersistentVolume
apiVersion: v1
metadata:
  name: pv-subpath
  labels:
    release: stable
spec:
  capacity:
    storage: .1Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  hostPath:
    path: /home/linkai/data/workspace/k8s/pv-subpath  #物理机路径

sudo vim pvc-subpath.yaml

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-subpath
  namespace: default
spec:
 accessModes: ["ReadWriteOnce"]
 resources:
   requests:
     storage: .05G

2、k8s命令创建

kubectl create -f pv-subpath.yaml

kubectl create -f pvc-subpath.yaml

3、查看创建好的信息

kubectl get deployment

二、k8s创建私有仓库镜像密钥

kubectl create secret docker-registry 秘钥名字  --docker-server=仓库地址 --docker-username=登录账号 --docker-password=登录密码

检查是否创建成功

kubectl get secret 秘钥名字

三、编写go程序yml文件(前提已经打包好docker镜像)

1、编辑文件

sudo vim nft-service.yml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nft-service-deployment
  labels:
    app: nft-service
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nft-service
  template:
    metadata:
      labels:
        app: nft-service
    spec:
      containers:
        - name: nft-service
          image: #镜像地址
          ports:
            - containerPort: 7006
          volumeMounts:
            - name: configs
              mountPath: /data/app/configs #挂载虚拟机目录
              subPath: nft-service
          volumeMounts:
            - name: subpath-vol
              mountPath: /data/app/logs    #挂载虚拟机目录
              subPath: nft-service
      imagePullSecrets:
        - name: #创建k8s密钥的名字
      volumes:
        - name: subpath-vol
          persistentVolumeClaim:
            claimName: pvc-subpath               # PVC的名字

2、k8s创建应用

kubectl apply -f nft-service.yml

3、查看应用信息

kubectl get deployment

kubectl get pod

kubectl describe pod "pod_name"  #获取到的pod name

4、物理机访问应用程序

kubectl port-forward --address 0.0.0.0 pod_name 7009:7006   
#(左边端口为宿主机端口,右边为k8s监听端口)

5、k8s进入容器:

kubectl exec -it pod_name -- sh

6、删除发布应用

kubectl delete deployment deployment_name

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值