我现在正在尝试在Kubernetes集群上运行一个带shell(/ bin/bash)的简单容器.
我认为有一种方法可以通过使用pseudo-tty和分离选项(命令-td选项docker run)来保持容器在Docker容器上运行.
例如,
$ sudo docker run -td ubuntu:latest
Run Code Online (Sandbox Code Playgroud)
在Kubernetes有这样的选择吗?
我尝试使用如下kubectl run-container命令运行容器:
kubectl run-container test_container ubuntu:latest --replicas=1
Run Code Online (Sandbox Code Playgroud)
但容器会退出几秒钟(就像使用docker run上面提到的没有选项的命令启动一样).并且ReplicationController重复再次启动它.
有没有办法让Kubernetes上的容器像命令中的-td选项一样运行docker run?
我有以下设置:
omg/telperiondocker hub上的docker 镜像一个kubernetes集群(有4个节点,每个节点有~50GB RAM)和充足的资源
我按照教程将图像从dockerhub拉到kubernetes
SERVICE_NAME=telperion
DOCKER_SERVER="https://index.docker.io/v1/"
DOCKER_USERNAME=username
DOCKER_PASSWORD=password
DOCKER_EMAIL="omg@whatever.com"
# Create secret
kubectl create secret docker-registry dockerhub --docker-server=$DOCKER_SERVER --docker-username=$DOCKER_USERNAME --docker-password=$DOCKER_PASSWORD --docker-email=$DOCKER_EMAIL
# Create service yaml
echo "apiVersion: v1 \n\
kind: Pod \n\
metadata: \n\
name: ${SERVICE_NAME} \n\
spec: \n\
containers: \n\
- name: ${SERVICE_NAME} \n\
image: omg/${SERVICE_NAME} \n\
imagePullPolicy: Always \n\
command: [ \"echo\",\"done deploying $SERVICE_NAME\" ] \n\
imagePullSecrets: \n\
- name: dockerhub" > $SERVICE_NAME.yaml
# Deploy to kubernetes
kubectl create -f $SERVICE_NAME.yaml
Run Code Online (Sandbox Code Playgroud)
这导致pod进入了 CrashLoopBackoff
docker run …
我已经为 Windows 和 minikube 设置了 Docker。此处列出的 (k8s.gcr.io/echoserver:1.10) 示例工作正常:https ://kubernetes.io/docs/setup/learning-environment/minikube/ 。
但是,当我在 c:\dev\helloworld 下创建简单的 .NET MVC 应用程序并尝试在 Minikube 中运行时,我得到状态:CrashLoopBackOff
环境:Windows 10 企业版