我想在 kubernetes yaml 文件中 apt-get install sysstat 命令

1 manifest apt-get kubernetes

集群信息:
\nKubernetes 版本:1.8
\n正在使用的云:(如果不在公共云上,则放置裸机)AWS EKS
\n主机操作系统:debian linux

\n\n

当我部署 pod 时,我希望我的 pod 自动安装并启动 sysstat

\n\n

这是我下面的两个 yaml 苍蝇,但当我输入命令时,\xe2\x80\x99t 无法工作 CrashLoopBackoff: ["/bin/sh", \xe2\x80\x9c-c\xe2\x80\x9d]\xe3\ x80\x81args: [\xe2\x80\x9capt-get install sysstat\xe2\x80\x9d]\xe3\x80\x8d 下面 \xe3\x80\x8cimage:\xe3\x80\x8d

\n\n

猫部署/db/statefulset.yaml

\n\n
apiVersion: apps/v1\nkind: StatefulSet\nmetadata:\n  name: \n    sbdemo-postgres-sfs\nspec:\n  serviceName: sbdemo-postgres-service\n  replicas: 1\n  selector:\n    matchLabels:\n      app: sbdemo-postgres-sfs\n  template:\n    metadata:\n      labels:\n        app: sbdemo-postgres-sfs\n    spec:\n      containers:\n       - name: postgres\n         image: dayan888/springdemo:postgres9.6\n         ports:\n          - containerPort: 5432\n         **command: ["/bin/bash", "-c"]**\n         **args: ["apt-get install sysstat"]**\n         volumeMounts:\n         - name: pvc-db-volume\n           mountPath: /var/lib/postgresql\n  volumeClaimTemplates:\n  - metadata:\n      name: pvc-db-volume\n    spec:\n      accessModes:\n      - ReadWriteOnce\n      resources:\n        requests:\n          storage: 1G\n
Run Code Online (Sandbox Code Playgroud)\n\n

cat 部署/web/deployment.yaml

\n\n
apiVersion: apps/v1\nkind: Deployment\nmetadata:\n  name: sbdemo-nginx\nspec:\n  replicas: 3\n  selector:\n    matchLabels:\n      app: sbdemo-nginx\n  template:\n    metadata:\n      labels:\n        app: sbdemo-nginx\n    spec:\n      containers:\n      - name: nginx\n        image: gobawoo21/springdemo:nginx\n         **command: ["/bin/bash", "-c"]**\n         **args: ["apt-get install sysstat"]**\n        ports:\n        - containerPort: 80\n        volumeMounts:\n        - name: nginx-conf\n          mountPath: /etc/nginx/nginx.conf\n          subPath: nginx.conf\n        - name: server-conf\n          mountPath: /etc/nginx/conf.d/server.conf\n          subPath: server.conf\n      volumes:\n      - name: nginx-conf\n        configMap: \n          name: nginx-conf\n          items:\n            - key: nginx.conf\n              path: nginx.conf\n      - name: server-conf\n        configMap: \n          name: server-conf\n          items:\n            - key: server.conf\n              path: server.conf\n
Run Code Online (Sandbox Code Playgroud)\n\n

有谁知道如何在部署 Pod 时自动设置存储库?

\n\n

问候

\n

har*_*riK 7

最佳实践是在映像构建阶段安装软件包。您只需将此步骤添加到您的 Dockerfile 中即可。

FROM postgres:9.6

RUN apt-get update &&\ 
    apt-get install sysstat -y &&\
    rm -rf /var/lib/apt/lists/*

COPY deploy/db/init_ddl.sh /docker-entrypoint-initdb.d/
RUN chmod +x /docker-entrypoint-initdb.d/init_ddl.sh
Run Code Online (Sandbox Code Playgroud)

库贝清单

   spec:
      containers:
       - name: postgres
         image: harik8/sof:62298191
         imagePullPolicy: Always
         ports:
          - containerPort: 5432
         env:
         - name: POSTGRES_PASSWORD
           value: password
         volumeMounts:
         - name: pvc-db-volume
           mountPath: /var/lib/postgresql
Run Code Online (Sandbox Code Playgroud)

它应该运行(请忽略POSTGRES_PASSWORD环境变量)

$ kubectl get po
NAME                    READY   STATUS      RESTARTS   AGE
sbdemo-postgres-sfs-0   1/1     Running     0          8m46s
Run Code Online (Sandbox Code Playgroud)

验证

$ kubectl exec -it sbdemo-postgres-sfs-0 bash
root@sbdemo-postgres-sfs-0:/# iostat
Linux 4.19.107 (sbdemo-postgres-sfs-0)  06/10/2020      _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
          10.38    0.01    6.28    0.24    0.00   83.09

Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
vda             115.53      1144.72      1320.48    1837135    2119208
scd0              0.02         0.65         0.00       1048          0
Run Code Online (Sandbox Code Playgroud)