Create user CSR

openssl genrsa -out ishare.key 2048
openssl req -new -key ishare.key -out ishare.csr

Approve CSR

openssl x509 -req -in ishare.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out ishare.crt -days 500

Create role

kind: Role
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  namespace: ishare
  name: ishare-admin
rules:
  - apiGroups: ["", "extensions", "apps"]
    resources:
      - "deployments"
      - "pods"
      - "services"
      - "statefulsets"
      - "secret"
      - "configmap"
      - "persistentvolumes"
      - "persistentvolumeclaims"
    verbs:
      - "get"
      - "list"
      - "watch"
      - "create"
      - "update"
      - "patch"
      - "delete"
  - apiGroups: ["storage.k8s.io"]
    resources:
      - "storageclasses"
    verbs:
      - "get"
      - "list"
      - "watch"

Create role binding

kind: RoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: ishare-rolebinding
  namespace: ishare
subjects:
  - kind: User
    name: ishare
    apiGroup: ""
roleRef:
  kind: Role
  name: ishare-admin
  apiGroup: ""

Create .kube/config

Login to the user to authorized

kubectl config set-cluster kubernetes --server=https://192.168.1.185:6443 --embed-certs --certificate-authority=/etc/kubernetes/pki/ca.crt
kubectl config set-credentials ishare --client-certificate=~/ishare.crt --client-key=~/ishare.key
kubectl config set-context ishare-context --cluster=kubernetes --namespace=ishare --user=ishare

References: