• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    K8s部署发布Golang应用程序的实现方法

    alertGo程序可以参考上篇文章,主要用于alertmanager实现钉钉报警

    创建dockerfile

    FROM golang:1.14-alpine
    ENV GOPROXY=https://goproxy.cn
    WORKDIR /build
    COPY . .
    EXPOSE 8088
    RUN mkdir /app
    RUN  go mod tidy
    RUN go build -o /app/alertGo alertGo.go
    WORKDIR /app
    CMD ["/app/alertGo"]
    

    打包并且推送

    docker build -t 10.206.16.4/k8s-go/alert.sentsss.com:v2 .
    docker push 10.206.16.4/k8s-go/alert.sentsss.com:v2

    创建namespace

    apiVersion: v1
    kind: Namespace
    metadata:
      name: k8s-go
    

    创建deployment

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: alertgo
      namespace: k8s-go
    spec:
      selector:
        matchLabels:
          app: alertgo
      replicas: 2
      template:
        metadata:
          labels:
            app: alertgo
        spec:
          imagePullSecrets:
          - name: registry-pull-secret
          containers:
            - name: alertgo
              image: 10.206.16.4/k8s-go/alert.sentsss.com:v2
              ports:
                - containerPort: 8088
              livenessProbe:
                httpGet:
                  path: /
                  port: 8088
                initialDelaySeconds: 30
                periodSeconds: 10
                successThreshold: 1
                failureThreshold: 3
                timeoutSeconds: 1
              readinessProbe:
                httpGet:
                  path: /
                  port: 8088
                initialDelaySeconds: 30
                periodSeconds: 10
                successThreshold: 1
                failureThreshold: 3
                timeoutSeconds: 1
              lifecycle:
                preStop:
                  exec:
                    command: ["/bin/bash","-c","sleep 20"]
              resources:
                limits:
                  cpu: 20m
                  memory: 20Mi
                requests:
           cpu: 10m
                  memory: 10Mi

    创建service

    apiVersion: v1
    kind: Service
    metadata:
      name: alertgo
      namespace: k8s-go
    spec:
      selector:
        app: alertgo
      ports:
        - port: 80
          targetPort: 8088
    

    创建ingress

    kind: Ingress # 对象类型
    apiVersion: networking.k8s.io/v1beta1
    metadata:
      name: alertgo
      namespace: k8s-go
    spec:
      rules:
        - host: alertgo.xxx.com
          http:
            paths:
            - path: /
              backend:
                serviceName: alertgo 
                servicePort: 80

    创建hpa

    kind: HorizontalPodAutoscaler # 对象类型,简称 hpa,水平自动伸缩
    apiVersion: autoscaling/v2beta2 # autoscaling/v2beta2 与 autoscaling/v1 的 API 有很大的不同,注意识别两者的差异
    metadata:
      name: alertgo
      namespace: fronted
    spec:
      scaleTargetRef: # 伸缩的目标对象
        apiVersion: apps/v1 # 对象版本
        kind: Deployment # 目标对象的类型
        name: alertgo # 目标对象的名称
      minReplicas: 3 # 最小副本数
      maxReplicas: 6 # 最大副本数
      metrics: # 指标
        - type: Resource # 类型:资源
          resource:
            name: memory # 内存
            target:
              type: Utilization
              averageUtilization: 70 # 1% 这个值是为了实验,具体值请参考业务方实际情况而定
    
        - type: Resource
          resource:
            name: cpu
            target:
              type: Utilization
              averageUtilization: 70
    
    

    结果查看

    [root@k8s-master-01 alertGo]# kubectl get pods,svc,ingress,hpa -n k8s-go
    NAME                           READY   STATUS              RESTARTS   AGE
    pod/alertgo-5bc79ccd65-8thmw   1/1     Running             0          37m
    pod/alertgo-5bc79ccd65-dm8ll   1/1     Running             0          38m
    pod/alertgo-5bc79ccd65-m9cd4   0/1     ContainerCreating   0          0s

    NAME              TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
    service/alertgo   ClusterIP   10.1.140.126   none>        80/TCP    65m

    NAME                         HOSTS                 ADDRESS   PORTS   AGE
    ingress.extensions/alertgo   alertgo.sentsss.com             80      34m

    NAME                                          REFERENCE            TARGETS            MINPODS   MAXPODS   REPLICAS   AGE
    horizontalpodautoscaler.autoscaling/alertgo   Deployment/alertgo   79%/70%, 10%/70%   2         6         2          15s

    到此这篇关于K8s部署发布Golang应用程序的实现方法的文章就介绍到这了,更多相关K8s部署发布Golang内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • 使用k8s部署Django项目的方法步骤
    • k8s部署redis cluster集群的实现
    • K8S二进制部署的K8S(1.15)部署hpa功能
    • 在K8s上部署Redis集群的方法步骤
    • SpringBoot应用快速部署到K8S的详细教程
    • 使用Rancher在K8S上部署高性能PHP应用程序的教程
    • k8s部署docker容器的实现
    • Docker学习笔记之k8s部署方法
    上一篇:GO实现协程池管理的方法
    下一篇:go开发alertmanger实现钉钉报警
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    K8s部署发布Golang应用程序的实现方法 K8s,部署,发布,Golang,应用程序,