首页 > 其他分享 >K8s 部署 Baget (私有Nuget服务器)

K8s 部署 Baget (私有Nuget服务器)

时间:2024-01-31 18:55:09浏览次数:31  
标签:__ name yaml Baget value Nuget baget 80 K8s

  • 1.Baget介绍

BaGet是一个构建于ASP.NET Core 基础上的 NuGet V3 服务器的开源实现。

  • 2.有哪些Nuget服务器搭建方案

NuGet.Server(Windows平台)、ProGet、MyGet

  • 3.编写yaml文件
  • 3.1 deployment
apiVersion: apps/v1
kind: Deployment
metadata:
  name: baget
  namespace: default
  labels:
    app: baget
spec:
  replicas: 1
  strategy:
    rollingUpdate:
      maxUnavailable: 1
      maxSurge: 2
    type: RollingUpdate
  selector:
    matchLabels:
      app: baget
  template:
    metadata:
      labels:
        app: baget
    spec:     
      containers:
      - name: baget
        image: loicsharma/baget:latest
        ports:
        - containerPort: 80
        resources:
          limits:
            cpu: 500m
            memory: 1Gi
          requests:
            cpu: 250m
            memory: 256Mi
        livenessProbe:
          httpGet:
            path: /v3/index.json
            port: 80
          initialDelaySeconds: 30
          timeoutSeconds: 30
          successThreshold: 1
          failureThreshold: 3
          periodSeconds: 30
        env:
        - name: PATH
          value: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
        - name: ASPNETCORE_URLS
          value: http://+:80
        - name: DOTNET_RUNNING_IN_CONTAINER
          value: "true"
        - name: ApiKey
          value: afe0f754-68b0-38a1-b7bf-44a34263465d
        - name: Storage__Type
          value: FileSystem
        - name: Storage__Path
          value: /var/baget/packages
        - name: Database__Type
          value: Sqlite
        - name: Database__ConnectionString
          value: Data Source=/var/baget/baget.db
        - name: Search__Type
          value: Database
        - name: AllowPackageOverwrites
          value: "true"
        volumeMounts:
        - name: baget-data
          mountPath: /var/baget
      volumes:
      - name: baget-data
        persistentVolumeClaim:
          claimName: baget
  • 3.2 pvc.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: baget
  namespace: default
spec:
  storageClassName: sc-nfs-hdd
  resources:
    requests:
      storage: 50Gi        #设置 pvc 存储资源大小
  accessModes:
  - ReadWriteOnce
  • 3.3 service.yaml
apiVersion: v1
kind: Service
metadata:
  name: baget
  namespace: default
  labels:
    app: baget
spec:
  type: ClusterIP
  ports:
  - port: 80
    targetPort: 80
    protocol: TCP
  selector:
    app: baget
  • 3.4 ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: baget
  namespace: default
  annotations:
    kubernetes.io/ingress.class: "nginx"
spec:
  rules:
  - host: baget.navywang.top
    http:
      paths:
      - path: /
        backend:
          serviceName: baget
          servicePort: 80

 

 

kc apply -f /home/k8s/yaml/baget

 

标签:__,name,yaml,Baget,value,Nuget,baget,80,K8s
From: https://www.cnblogs.com/whjblog/p/17999914

相关文章

  • K8S搭建过程学习分享
    流程:环境---》安装docker---》安装rancher---》部署k8sRancher是一个开源软件平台,使组织能够在生产中运行和管理Docker和Kubernetes。使用Rancher,组织不再需要使用一套独特的开源技术从头开始构建容器服务平台。Rancher提供了管理生产中的容器所需的整个软件堆栈。两台机器:节点ip......
  • 初始安装 Prometheus 监控k8s组件 target 状态显示失败的处理办法
    当我们使用Kubeadm完成Kubernetes的搭建时,默认控制面的组件的metrics端点会监听在本机127.0.0.1接口上,这会导致Prometheus/kube-Prometheus-stack开局配置无法从自动发现的端点拉取到指标。方法有如下两种:在使用kubeadm初始安装集群时,更新相关配置在Kubernete......
  • k8s-master 设置调度污点
    k8smaster调度污点NoSchedule:K8Snode添加这个effecf类型污点,新的不能容忍的pod不能再调度过来,但是老的运行在node上不受影响NoExecute:K8Snode添加这个effecf类型污点,新的不能容忍的pod不能调度过来,老的pod也会被驱逐PreferNoSchedule:pod会尝试将pod分配到该节点#设置mas......
  • 在K8S中,apiservice与kube-schedule高可用原理?
    在Kubernetes(简称K8s)中,为了实现高可用性(HA),不同的组件有不同的机制:kube-apiserver高可用原理:负载均衡:在一个集群中,通常会部署多个kube-apiserver实例,并通过负载均衡器(如云服务商的负载均衡服务或硬件负载均衡器,或者是内部软件如NGINX等)对外提供统一入口。这样可以确保即使有单......
  • 在K8S中,创建pod过程?
    在Kubernetes(简称K8s)中创建Pod的过程涉及多个组件的交互,以下是简化版的Pod创建流程:客户端请求:用户通过kubectlapply命令、控制台界面或者API调用提交一个Pod的定义文件(YAML或JSON格式),向集群中的kube-apiserver发送创建Pod的请求。验证与准入控制:kube-apiserver接收到......
  • 在K8S中,flannel能固定节点IP和Pod的IP地址吗?
    Flannel作为一个Kubernetes集群的网络插件,其设计目标之一是为Pod分配固定的IP地址,并确保不同节点上的PodIP地址不会冲突。具体来说:PodIP固定:Flannel在每个节点上预分配一个子网供Pod使用,当创建新Pod时,Flannel会从该节点的子网中分配一个唯一的IP地址给Pod,从而确保Pod在整个生......
  • 在K8S中,Pod亲和性概念是什么?
    在Kubernetes(简称K8S)中,Pod亲和性和反亲和性(AffinityandAnti-Affinity)是集群调度策略的重要组成部分,它们用于控制Pod如何与节点或其他Pod相对应地放置或避免放置在一起。Pod亲和性(Affinity):Pod亲和性允许用户指定某种规则,使得Pod更倾向于被调度到满足特定条件的节点上运行,或者与......
  • 在K8S中,PV生命周期状态有哪些?
    在Kubernetes中,PersistentVolume(PV)对象具有以下几种生命周期状态:Available(可用):PV在被创建并设置为可供绑定的状态时处于Available状态。在此状态下,PV尚未与任何PersistentVolumeClaim(PVC)关联或绑定。Bound(已绑定):当管理员或Kubernetes自动将PV与一个匹配的Persis......
  • 在K8S中,DaemonSet类型资源特性?
    在Kubernetes(简称K8S)中,DaemonSet是一种控制器资源对象,它的主要特性包括:每个节点运行一个实例:DaemonSet确保集群中的每个工作节点上都运行着一个指定的Pod副本。这意味着当DaemonSet被创建时,系统会自动调度Pod到所有符合条件的节点上,确保每个节点上都有且仅有一个该Pod的实例......
  • 在K8S中,flannel有几种模式?
    在Kubernetes(简称K8S)中,Flannel作为常用的网络插件之一,为集群提供覆盖网络(OverlayNetwork)支持,帮助Pod间实现跨主机通信。Flannel支持多种后端网络模式来实现这一功能,主要包括:VXLAN模式:VXLAN是一种Layer2虚拟化技术,它通过在IP包内封装二层以太网帧来创建一个跨越三层网络的虚......