ConfingExeption при отправке сигнала задания в kubernetes внутри django для активации pod
Я создал программу на C++ и установил ее в docker/kubernetes внутри облака google, используя действия Github. У меня есть 3 активных pods внутри моего кластера, и моя программа на c++ в основном принимает json в качестве входных данных от приложения django и дает выходные данные. Моя цель сейчас - запустить pod внутри django. Сейчас я написал некоторый код, используя официальный пакет kubernetes django, но я получаю ошибку:
Вот то, что я писал до сих пор:
from kubernetes import client, config, utils
import kubernetes.client
from kubernetes.client.rest import ApiException
# Set logging
logging.basicConfig(stream=sys.stdout, level=logging.INFO)
# Setup K8 configs
# config.load_incluster_config("./kube-config.yaml")
config.load_kube_config("./kube-config.yaml")
configuration = kubernetes.client.Configuration()
api_instance = kubernetes.client.BatchV1Api(kubernetes.client.ApiClient(configuration))
Я не очень много знаю о файле kube-config.yaml, поэтому я позаимствовал код из интернета:
apiVersion: batch/v1beta1
kind: CronJob
metadata:
name: test
spec:
schedule: "*/5 * * * *"
jobTemplate:
spec:
template:
spec:
containers:
- name: test
image: test:v5
env:
imagePullPolicy: IfNotPresent
command: ['./CppProgram']
args: ['project.json']
restartPolicy: OnFailure
Файл yaml и файл python находятся в одном каталоге.
Но когда я вызываю это через представление, я получаю эту ошибку на консоли:
kubernetes.config.config_exception.ConfigException: Invalid kube-config file. No configuration found.
Виноват ли мой вызов load_kube_config или мой yaml-файл неправильный? Если да, то есть ли пример, который я могу рассмотреть?
Я видел этот вопрос задавался ранее, я думаю, что согласно этому я должен использовать load_kube_config
(я уже развернул на движке google kubernetes и подсы должны быть готовы. ), но я не уверен.
Вам необходимо использовать функцию load_incluster_config() вместо load_kube_config().