<p>When I set the Cronjob Schedule as <code>*/1 * * * *</code>,it would work.</p>
<p>When I set any number which is in <code>0-59</code> to the <code>crontab minute</code>,such as <code>30 * * * *</code>,it would work as well.</p>
<p>However when I set the Cronjob Schedule as <code>30 11 * * *</code>,it even doesn`t create a job at 11:30.</p>
<p>All the config is followed:</p>
<pre><code> apiVersion: batch/v1beta1
 kind: CronJob
 metadata:
   name: hello
 spec:
   schedule: &quot;33 11 * * *&quot;
   jobTemplate:
     spec:
       template:
         spec:
           containers:
             - name: hello-cronjob
               image: busybox
               command: [&quot;bash&quot;,&quot;-c&quot;,&quot;date;echo  Hello from the Kubernetes cluste&quot;]
           restartPolicy: OnFailure
</code></pre>

<p>This is probably because your cluster is running in a different timezone then the one used by you.</p>

<p>You can check what timezone will be set in a <code>POD</code> using:</p>

<p><code>kubectl run -i --tty busybox --image=busybox --restart=Never -- date</code>.</p>

<p>As for your <code>yaml</code> it looks good, there is no need to change anything with the <code>spec.schedule</code> value.</p>

<p>A small hint that might be helpful to you which is checking the logs from <code>Jobs</code>.</p>

<p>When you create <code>CronJob</code> when it's scheduled it will spawn a <code>Job</code>, you can see them using <code>kubectl get jobs</code>.</p>

<pre><code>$ kubectl get jobs
NAME               DESIRED   SUCCESSFUL   AGE
hello-1552390680   1         1            7s
</code></pre>

<p>If you use the name of that job <code>hello-1552390680</code> and set it as a variable you can check the logs from that job.</p>

<pre><code>$ pods=$(kubectl get pods --selector=job-name=hello-1552390680 --output=jsonpath={.items..metadata.name})
</code></pre>

<p>You can later check logs:</p>

<pre><code>$ kubectl logs $pods
Tue Mar 12 11:38:04 UTC 2019
Hello from the Kubernetes cluster
</code></pre>
