<ol>
<li><p>Once I register the crd into the k8s cluster, I can use .yaml to create it, without operator running. Then What happends to these created resouces?</p>
</li>
<li><p>I have seen the <code>Reconciler</code> of operator, but it's more like an async status transfer. When we create a pod, we can directly get the pod ip from the create result. But it seems that I didn't find a place to write my <code>OnCreate</code> hook. (I just see some <code>validate</code> webhook, but never see a hook that be called when creation request made, defines how to create the resourse, and return the created resourse info to the caller ).</p>
</li>
<li><p>If my story is that for one kind of resource, in a time window, all coming creation will multiplex only one pod. Can you give me some advice?</p>
</li>
</ol>

<p>That's a big story for kubernetes <code>crd</code>/<code>controller</code> life cycle, I try to make a simple representation.</p>
<ol>
<li>After register a new CRD, and create CR, <code>kube-api-server</code> do not care if there is a related <code>controller</code> existed or not. see the process:
<a href="https://i.stack.imgur.com/WZUQj.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/WZUQj.png" alt="enter image description here" /></a></li>
</ol>
<p>That's means the resource(your CR) will be store to etcd, has no business of your <code>controller</code></p>
<ol start="2">
<li>ok, let talk about your controller. your controller will setup a <code>list/watch</code>(actually a long live http link) to the <code>api-server</code> and register  <code>hook</code>(what you ask, right?) for different event: <code>onCreate</code>, <code>onUpdate</code> and <code>onDelete</code>. Actually you will handle all event in your controller's <code>reconcile</code> (remember kubernetes reconcile's responsibility: move current state to desired state). see the diagram:
<a href="https://i.stack.imgur.com/OvDqY.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/OvDqY.png" alt="enter image description here" /></a></li>
</ol>
<ol start="3">
<li>For the <code>list/watch</code> link in your <code>controller</code>, you need set different link for different kind of resource. for example: if you care about event for <code>pod</code>, you need set <code>pod</code> <code>list/watch</code> or care about deployment, and set a <code>deployment</code> <code>list/watch</code>...</li>
</ol>
