<p>I know that the storage used by Kubernetes in GKE is fully managed and not exposed (<a href="https://groups.google.com/forum/#!msg/kubernetes-users/6BLcAQAvPCU/cspFZt3eBgAJ" rel="nofollow noreferrer">source</a>). But I wanted to know if there is any limitation/restriction on the storage size. I couldn't find any link which clarifies this part.</p>

<p>For example, I am using GKE to run small jobs. Should I create a batch job which regularly deletes the old job information or not bother about deleting them at all?</p>

Sudarshan Murthy
<p>A GKE job is running, and once the job is completed, the API will not <a href="https://cloud.google.com/kubernetes-engine/docs/how-to/jobs" rel="nofollow noreferrer">delete the job</a>. Jobs are not deleted but they are <code>terminated</code>. </p>

<p>When a job is <code>terminated</code>, it means that it is no longer running but you can <a href="https://kubernetes.io/docs/concepts/workloads/controllers/jobs-run-to-completion/#job-termination-and-cleanup" rel="nofollow noreferrer">still access its log files</a>, and view its status. A <code>terminated</code> job will not consume too many resources. </p>

<p>You may keep the <code>terminated</code> jobs, if you would like to keep a record of the logs. </p>

<p>If retaining the logs has no benefit in your use case, then you may delete the old jobs. </p>

<p>Lastly, to answer your question, yes there is a storage limit on etcd in GKE. The limit on the etcd datastore is of a few GB. </p>

<p>Note that if the etcd datastore hits its storage limit, your application effectively becomes unavailable. This means that it would be a good idea to delete the jobs to make sure that the etcd storage limit is not reached. </p>
