This is a really basic question, that I just can't seem to find it ANYWHERE.
I need to create a CronJob on OpenShift Container Platform.
I wasn't able to find a page on the Container Platform on how to directly create a CronJob.
But I did manage to find instruction on creating it by pasting the Job yaml file in the Add to Application Button.
https://docs.openshift.com/container-platform/4.1/nodes/jobs/nodes-nodes-jobs.html
Now, having created a CronJob(I think).
Lol, how do I even find/modify/delete it on Container Platform?
You can find cron jobs in the Cluster Console/Workloads/Cron Jobs.
In the Openshift version 3.X, you need to be under "Administrator" profile. Then click Workloads/Cronjobs.
Related
I run magento 2 on my local with docker.
It works like a charm.
But now I would like to pass the next step, and deploying a registry image of my magento2 (gitlab registry with gitlab-ci in my case) in a k3d cluster in my personal server.
I don't have any problems to generate the image in the registry of gitlab and to deploy the service, the node, the pod with kube in my server. To train myself and to be sure that what I did was correct, I have tried to deploy an other image in my cluster from the gitlab registry from a little simple HTML and a Dockerfile and it works like a charm.
But the magento 2 image no. The problem is that we must play the setup / compile / etc. When I try to play composer install in my entrypoint it says in the logs pod that there is no composer.json in the folder where composer is supposed to be. So I guess I must configure ingress.yaml, services and deployment with a specific way. I don't know where to start and how.
My question is just, if someone know a good tuto or some documentations links I would be pleased to see that.
I have heard about helm, the hooks etc...but I don't handle it at all. I even don't know what it is...
Thank you
Thanks
I encountered the same issue as in https://github.com/kubeflow/kubeflow/issues/6014 with my Kubeflow app. The fix is very simple (just a type casting), then I would like to fix it myself and redeploy Kubeflow.
The problem is that I am running a k3s cluster on my local machine where I have installed Kubeflow bundle via Juju. Then, I cannot change the source code.
How to modify Kubeflow source code before deploying it with Kubernetes?
Should I use the manifest installation https://github.com/kubeflow/manifests#installation ? or a totally different method?
Thank you.
The bug was fixed in the last version of the manifests, then I have finally installed kubeflow directly from the manifests.
But still I am in touch with one Kubeflow developer, I will post here the right way to do modify/deploy if interested.
You got to check out their Github repo. Make changes and use kustomize to install like explained in their wiki. If you check the example folder you can see that it points to all other component folders.
https://github.com/kubeflow/manifests#install-with-a-single-command
One another hack could be, just look for the controllers in Kubernetes eg., deployments created for kubeflow, then modify them; works only if your changes are only related to Kubernetes resource definitions. I suggest going with the first option above for a clean development experience, and hey, that way can you contribute back to the kubeflow project as well, if you changes will benefit others.
I have an HTTP application (Odoo). This app support install/updating modules(addons) dynamically.
I would like to run this app in a Kubernetes cluster. And I would like to dynamically install/update the modules.
I have 2 solutions for this problem. However, I was wondering if there are other solutions.
Solution 1:
Include the custom modules with the app in the Docker image
Every time I made a change in the custom module and push it to a git repository. Jinkins pull the changes and create a new image and then apply the new changes to the Kubernetes cluster.
Advantages: I can manage the docker image version and restart an image if something happens
Drawbacks: This solution is not bad for production however the list of all custom module repositories should all be included in the docker file. Suppose that I have two custom modules each in its repository a change to one of them will lead to a rebuild of the whole docker image.
Solution 2:
Have a persistent volume that contains only the custom modules.
If a change is made to a custom module it is updated in the persistent volume.
The changes need to apply to each pod running the app (I don't know maybe doing a restart)
Advantages: Small changes don't trigger image build. We don't need to recreate the pods each time.
Drawbacks: Controlling the versions of each update is difficult (I don't know if we have version control for persistent volume in Kubernetes).
Questions:
Is there another solution to solve this problem?
For both methods, there is a command that should be executed in order to take the module changes into consideration odoo --update "module_name". This command should include the module name. For solution 2, How to execute a command in each pod?
For solution 2 is it better to restart the app service(odoo) instead of restarting all the nodes? Meaning, if we can execute a command on each pod we can just restart the service of the app.
Thank you very much.
You will probably be better off with your first solution. Specially if you already have all the toolchain to rebuild and deploy images. It will be easier for you to rollback to previous versions and also to troubleshoot (since you know exactly which version is running in each pod).
There is an alternative solution that is sometime used to provision static assets on web servers: You can add an emptyDir volume and a sidecar container to the pod. The sidecar pull the changes from your plugins repositories into the emptyDir at fixed interval. Finally your app container, sharing the same emptyDir volume will have access to the plugins.
In any case running the command to update the plugin is going to be complicated. You could do it at fixed interval but your app might not like it.
I have two servers at my home with Gentoo Linux ~amd64.I would like to install Kubernetes on them to play with it a bit.
Gentoo now packages all the Kubernetes related dependencies under one package called sys-cluster/kubernetes and the latest version available at the moment is 1.18.3.
the last time I played with Kubernetes was several years ago and I think I completely forgot everything.
so I installed kubernetes on both servers. since I use systemd and the package contains only kubelet systemd service I created systemd init scripts for also kube-apiserver, kube-controller-manager, kube-proxy and kube-scheduler.
now this package also comes with kubeadm but I would like to know how to install and configure kubernetes manually.
now I want to create a kubeconfig file for my cluster configuration.
I googled and found the following url: http://docs.shippable.com/deploy/tutorial/create-kubeconfig-for-self-hosted-kubernetes-cluster/
the first step is Make sure you can access the cluster but I thought I wanted to create kubeconfig in order for the services to properly know how to access my cluster!
this web site already talks about secrets that where already configured which aren't.. i'm starting from scratch and this is not probably the way to go.
In general I want to know how to properly create a kubeconfig file for my setup, then i'll configure the services to use this kubeconfig file and go on from there.
so any information regarding this issue would be greatly appreciated.
so I asked this also in Kubernetes slack channel and they provided me this project: https://github.com/kelseyhightower/kubernetes-the-hard-way
it's a documentation project on how to configure kubernetes the hard way, in the documentation they set it up in google cloud, but it's easy to understand what they did on cloud and how to configure the same on your network.
I have a problem to migrate kubernetes cluster to other google project, not so familiar with GKE. Assuming my cluster is k8s-prod-xyz in xyz-proj project.
Now, i have a new project called xyz-new-proj and the Kubernetes cluster is still empty. I want to move or migrate the k8s-prod-xyz from xyz-proj to xyz-new-proj.
Node, PVC, Services, etc should be transfered or migrated. Have you guys experienced this case ? Or should i create new Kubernetes cluster in new project and then run the deployment from zero ?
You can use GKE feature Clone an existing cluster (however this works only within the same project) along with Heptio Velero tool. I guess the solution described in this article is currently the fastest and most convenient way of performing such migration.