集群信息:
\nKubernetes 版本:1.8
\n正在使用的云:(如果不在公共云上,则放置裸机)AWS EKS
\n主机操作系统:debian linux
当我部署 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\napiVersion: 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\nRun Code Online (Sandbox Code Playgroud)\n\ncat 部署/web/deployment.yaml
\n\napiVersion: 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\nRun Code Online (Sandbox Code Playgroud)\n\n有谁知道如何在部署 Pod 时自动设置存储库?
\n\n问候
\n最佳实践是在映像构建阶段安装软件包。您只需将此步骤添加到您的 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)
| 归档时间: |
|
| 查看次数: |
6958 次 |
| 最近记录: |