Я очень новичок в докере / kubernetes. Я создал образ docker на своем экземпляре AWS EC2, который я могу запустить, используя
sudo docker run imagename
Это успешно выполняется. Я также вижу, что изображение существует в локальном репозитории docker, когда я запускаю
sudo docker image ls
(примечание: я должен использовать sudo, или эти команды дают ошибки разрешения)
Теперь я пытаясь заставить kubernetes запустить задание, которое создает контейнер с этим изображением, но когда я это делаю, я получаю следующую ошибку:
Failed to pull image "imagename": rpc error: code = Unknown desc = Error response from daemon: pull access denied for imagename, repository does not exist or may require 'docker login'
Вот код Python / flask, который я использую, чтобы попробовать создать работу с API kubernetes. Задание успешно создается на сервере, но когда я проверяю журнал kubernetes, именно здесь я вижу ошибку.
config.load_kube_config()
api_client = client.BatchV1Api()
container = client.V1Container(
name="premium",
image="imagename",
resources=client.V1ResourceRequirements(requests={'cpu':'.9'}, limits={'cpu':'2'}),
env=[client.V1EnvVar(name='dataset', value=ds )]
)
# Create and configurate a spec section
template = client.V1PodTemplateSpec(
metadata=client.V1ObjectMeta(labels={"app": "premium"}),
spec=client.V1PodSpec(restart_policy="Never", containers=[container]))
# Create the specification of deployment
spec = client.V1JobSpec(
template=template,
backoff_limit=4)
# Instantiate the job object
job = client.V1Job(
api_version="batch/v1",
kind="Job",
metadata=client.V1ObjectMeta(generate_name = 'premium-job-'),
spec=spec)
api_response = api_client.create_namespaced_job("default", job, pretty=True)