我需要为k8s yaml配置一个容器。使用终端的docker run上的工作流如下所示:
docker run -v $(pwd):/projects \
-w /projects \
gcr.io/base-project/myoh:v1 init *myproject*此命令创建一个名为myproject的目录。要完成工作流,我需要cd到myproject文件夹并运行:
docker run -v $(pwd):/project \
-w /project \
-p 8081:8081 \
gcr.io/base-project/myoh:v1知道如何将其转换为坞-组合或k8s荚/部署yaml吗?我已经试过了所有浮现在脑海中的东西,但都没有成功。
发布于 2020-11-27 01:50:32
无法将当前目录的绑定挂载转换为Kubernetes。无法将pod的文件系统连接回本地工作站。一个标准的Kubernetes安装程序有一个多节点安装,如果可以直接连接到一个节点(可能不是),您就无法预测一个吊舱将在哪个节点上运行,并且将代码复制到每个节点是很麻烦的,也很难维护。如果您使用的是像GKE这样的托管Kubernetes安装,那么集群自动分词器甚至可能会自动创建和删除节点,并且您将没有机会手动复制这些节点。
您需要将应用程序代码构建为自定义映像。它可以设置所需的WORKDIR、COPY代码以及RUN所需的任何安装命令。然后,您需要将其推送到映像存储库,如GCR。
docker build -t gcr.io/base-project/my-project:v1 .
docker push gcr.io/base-project/my-project:v1一旦有了它,就可以创建一个最小的Kubernetes 部署来运行它。将您构建和推送的映像的GCR名称设置为其image:。您还需要一个服务来实现它的可访问性,即使是来自同一集群中的其他Pods。
发布于 2020-11-27 01:46:21
试试这个(未经测试的yaml,但你会明白的)
apiVersion: apps/v1
kind: Deployment
metadata:
name: myoh-deployment
labels:
app: myoh
spec:
replicas: 1
selector:
matchLabels:
app: myoh
template:
metadata:
labels:
app: myoh
spec:
initContainers:
- name: init-myoh
image: gcr.io/base-project/myoh:v1
command: ['sh', '-c', "mkdir -p myproject"]
containers:
- name: myoh
image: gcr.io/base-project/myoh:v1
ports:
- containerPort: 8081
volumeMounts:
- mountPath: /projects
name: project-volume
volumes:
- name: test-volume
hostPath:
# directory location on host
path: /data
# this field is optional
type: Directoryhttps://stackoverflow.com/questions/65030419
复制相似问题