<p><code>kubectl get events</code> list the events for the K8s objects.
From where the events are triggered for PV/PVC actually ?
There is a list of volume events
<a href="https://docs.openshift.com/container-platform/4.5/nodes/clusters/nodes-containers-events.html" rel="nofollow noreferrer">https://docs.openshift.com/container-platform/4.5/nodes/clusters/nodes-containers-events.html</a>
but it does not identifies that which events are for which resource ?</p>

bUff23
<p>Let`s start from what exactly is an Kubernetes event. Those are object that provide insight into what is happening inside a cluster, such as what decisions were made by scheduler or why some pods were evicted from the node. Those API objects are persisted in etcd.</p>
<p>You can read more about them <a href="https://kubernetes.io/docs/tasks/debug-application-cluster/debug-application-introspection/" rel="nofollow noreferrer">here</a> and <a href="https://kubernetes.io/docs/tasks/debug-application-cluster/events-stackdriver/#:%7E:text=Kubernetes%20events%20are%20objects%20that,were%20evicted%20from%20the%20node" rel="nofollow noreferrer">here</a>.
There is also an excellent tutorial about Kubernetes events which you may find <a href="https://www.bluematador.com/blog/kubernetes-events-explained" rel="nofollow noreferrer">here</a>.</p>
<hr />
<p>There are couple of ways to view/fetch more detailed events from Kubernetes:</p>
<p>Use <code>kubectl get events -o wide</code>. This will give you information about <code>object</code>, <code>subobject</code> and <code>source</code> of the event. Here`s an example:</p>
<pre><code>LAST SEEN   TYPE      REASON                  OBJECT                            SUBOBJECT                         SOURCE                                                          MESSAGE

&lt;unknown&gt;   Warning   FailedScheduling        pod/web-1                                                           default-scheduler                                               running &quot;VolumeBinding&quot; filter plugin for pod &quot;web-1&quot;: pod has unbound immediate PersistentVolumeClaims

6m2s        Normal    ProvisioningSucceeded   persistentvolumeclaim/www-web-1                                     k8s.io/minikube-hostpath 2481b4d6-0d2c-11eb-899d-02423db39261   Successfully provisioned volume pvc-a56b3f35-e7ac-4370-8fda-27342894908d

6m2s        Normal    ProvisioningSucceeded   persistentvolumeclaim/www-web-1                                     k8s.io/minikube-hostpath 2481b4d6-0d2c-11eb-899d-02423db39261   Successfully provisioned volume pvc-a56b3f35-e7ac-4370-8fda-27342894908d
</code></pre>
<br>
<p>Use <code>kubectl get events --output json</code> will give you list of the event in <code>json</code> format containing other details such as <code>selflink</code>.</p>
<pre><code>        ---
                &quot;apiVersion&quot;: &quot;v1&quot;,
        &quot;count&quot;: 1,
        &quot;eventTime&quot;: null,
        &quot;firstTimestamp&quot;: &quot;2020-10-13T12:07:17Z&quot;,
        &quot;involvedObject&quot;: {
        ---  
        &quot;kind&quot;: &quot;Event&quot;,
        &quot;lastTimestamp&quot;: &quot;2020-10-13T12:07:17Z&quot;,
        &quot;message&quot;: &quot;Created container nginx&quot;,
        &quot;metadata&quot;: {       
        ---    
</code></pre>
<p><code>Selflink</code> can be used to determine the the API location from where the data is being fetched.</p>
<p>We can take as an example  <code>/api/v1/namespaces/default/events/</code> and fetch the data from API server using <code>kubectl proxy</code>:</p>
<pre><code>kubectl proxy --port=8080 &amp; curl http://localhost:8080/api/v1/namespaces/default/events/
</code></pre>
<p>Using all those information you can narrow down to a specific details from the underlying object using <code>field-selector</code>:</p>
<pre><code>    kubectl get events --field-selector type=!Normal
    or
    kubectl get events --field-selector involvedObject.kind=PersistentVolumeClaim
    
    LAST SEEN   TYPE     REASON                  OBJECT                            MESSAGE
    44m         Normal   ExternalProvisioning    persistentvolumeclaim/www-web-0   waiting for a volume to be created, either by external provisioner &quot;k8s.io/minikube-hostpath&quot; or manually created by system administrator
    44m         Normal   Provisioning            persistentvolumeclaim/www-web-0   External provisioner is provisioning volume for claim &quot;default/www-web-0&quot;
    44m         Normal   ProvisioningSucceeded   persistentvolumeclaim/www-web-0   Successfully provisioned volume pvc-815beb0a-b5f9-4b27-94ce-d21f2be728d5
</code></pre>
<p>Please also remember that all the information provided by <code>kubectl events</code> are the same ones from the <code>kubectl describe &lt;ojbect&gt;</code>.</p>
<p>Lastly, if you look carefully into the <a href="https://github.com/kubernetes/kubernetes/blob/master/pkg/controller/volume/events/event.go#L20" rel="nofollow noreferrer">event.go</a> code you may see all the events reference for volumes. If you compare those with the <code>Table 13. Volumes</code> you can see that they are almost the same (execpt for <code>WaitForPodScheduled</code> and  <code>ExternalExpanding</code>)</p>
<p>This means that Openshift provided an aggregated set of information about possible events from different kubernetes that may  occur in the cluster.</p>
