在安装Ubuntu和Debian操做系统时,经过在局域网创建一个镜像站点,能够大幅度加速apt软件包安装过程,同时减小主服务器的负担。git
这里分享基于Kubernetes来创建apt镜像服务的方法。github
部署到Kubernetes中,配置文件以下:docker
apiVersion: v1 kind: ServiceAccount metadata: name: apt-mirror namespace: apt-mirror --- kind: Service apiVersion: v1 metadata: name: apt-mirror namespace: apt-mirror labels: app: apt-mirror spec: ports: - name: mirror-server port: 80 type: LoadBalancer selector: app: apt-mirror --- kind: Deployment apiVersion: apps/v1 metadata: name: apt-mirror namespace: apt-mirror spec: selector: matchLabels: app: apt-mirror replicas: 1 strategy: type: Recreate template: metadata: labels: app: apt-mirror spec: serviceAccount: apt-mirror containers: - name: apt-mirror image: seterrychen/apt-mirror-http-server ports: - name: mirror-server containerPort: 80 securityContext: capabilities: add: - DAC_READ_SEARCH - SYS_RESOURCE env: - name: RESYNC_PERIOD value: 12h imagePullPolicy: "IfNotPresent" volumeMounts: - name: mirror-volume mountPath: /var/spool/apt-mirror volumes: - name: mirror-volume hostPath: path: /home/supermap/apt-mirror
咱们建立了一个Deployment和一个Service。存储使用了hostpath,只是为了方便验证可行性。在生产系统中,volumes能够使用NFS或其它的网络分布式存储系统,从而能够迁移、伸缩和容错。api
将上面的文件保存为mirror-server.sh,而后运行:浏览器
kubectl create ns apt-mirror kubectl apply -f mirror-server.yaml
便可将该服务安装到apt-mirror命名空间中。服务器
而后,在浏览器中访问服务中列出的地址便可。能够经过下面的命令获取:网络
kubectl get svc -n apt-mirror
若是镜像下载有问题,能够尝试单独下载,以下:app
docker pull seterrychen/apt-mirror-http-server