• k8s 创建UserAccount


    参考:

    https://kubernetes.io/docs/reference/access-authn-authz/certificate-signing-requests/#normal-user

    1·创建个人证书

    1. # 生成user私钥
    2. openssl genrsa -out zhanglei.key 2048
    3. # 创建证书签署请求
    4. openssl req -new -key zhanglei.key -out zhanglei.csr -subj "/O=org/CN=neozhao"
    5. # 使用集群证书签署个人证书
    6. openssl x509 -req -in neozhao.csr -CA /etc/kubernetes/pki/ca.crt -CAkey /etc/kubernetes/pki/ca.key -CAcreateserial -out zhanglei.crt -days 365

    2·生成配置文件

    1. # 设置集群参数
    2. kubectl config set-cluster kubernetes \
    3. --certificate-authority=/etc/kubernetes/pki/ca.crt \
    4. --embed-certs=true \
    5. --server=https://192.168.110.6:6443 \
    6. --kubeconfig=./config
    7. # 设置客户端认证参数
    8. kubectl config set-credentials zhanglei \
    9. --client-certificate=zhanglei.crt \
    10. --client-key=zhanglei.key \
    11. --embed-certs=true \
    12. --kubeconfig=./config
    13. # 设置上下文参数
    14. kubectl config set-context zhanglei-config \
    15. --cluster=kubernetes \
    16. --user=zhanglei \
    17. --kubeconfig=./config
    18. # 设置默认上下文
    19. kubectl config use-context zhanglei-config \
    20. --kubeconfig=./config

    3.设置权限

    1. apiVersion: rbac.authorization.k8s.io/v1
    2. kind: ClusterRole
    3. metadata:
    4. namespace: loggie
    5. name: loggie-user-role
    6. rules:
    7. - apiGroups:
    8. - ""
    9. resources:
    10. - nodes
    11. - pods/log
    12. - patch
    13. - update
    14. verbs:
    15. - get
    16. - watch
    17. - list
    18. - apiGroups:
    19. - ""
    20. resources:
    21. - pods
    22. - serviceaccounts
    23. - namespaces
    24. verbs:
    25. - get
    26. - watch
    27. - list
    28. - create
    29. - patch
    30. - update
    31. - delete
    32. - apiGroups:
    33. - apiextensions.k8s.io
    34. resources:
    35. - customresourcedefinitions
    36. verbs:
    37. - create
    38. - patch
    39. - update
    40. - get
    41. - list
    42. - watch
    43. - apiGroups:
    44. - rbac.authorization.k8s.io
    45. resources:
    46. - clusterrolebindings
    47. - clusterroles
    48. - serviceaccounts
    49. verbs:
    50. - create
    51. - patch
    52. - update
    53. - get
    54. - list
    55. - watch
    56. - delete
    57. - apiGroups:
    58. - ""
    59. resources:
    60. - events
    61. - configmaps
    62. - services
    63. verbs:
    64. - get
    65. - watch
    66. - list
    67. - update
    68. - create
    69. - patch
    70. - apiGroups:
    71. - extensions
    72. - apps
    73. resources:
    74. - deployments
    75. verbs:
    76. - get
    77. - list
    78. - watch
    79. - apiGroups:
    80. - apps
    81. resources:
    82. - daemonsets
    83. verbs:
    84. - get
    85. - list
    86. - watch
    87. - update
    88. - create
    89. - patch
    90. - delete
    91. - apiGroups:
    92. - loggie.io
    93. resources:
    94. - logconfigs
    95. - logconfigs/status
    96. - clusterlogconfigs
    97. - clusterlogconfigs/status
    98. - sinks
    99. - interceptors
    100. verbs:
    101. - get
    102. - list
    103. - watch
    104. - update
    105. - patch
    106. - apiGroups:
    107. - coordination.k8s.io
    108. resources:
    109. - leases
    110. verbs:
    111. - create
    112. - get
    113. - list
    114. - update

    4.绑定权限

    1. apiVersion: rbac.authorization.k8s.io/v1
    2. kind: ClusterRoleBinding
    3. metadata:
    4. name: loggie-user-role-bind
    5. namespace: loggie
    6. roleRef:
    7. apiGroup: rbac.authorization.k8s.io
    8. kind: ClusterRole
    9. name: loggie-user-role
    10. subjects:
    11. - apiGroup: rbac.authorization.k8s.io
    12. kind: User
    13. name: loggie

    5.非master节点创建用户

    创建private key

    1. openssl genrsa -out john.key 2048
    2. openssl req -new -key john.key -out john.csr -subj "/CN=john"
    3. openssl req -in john.csr -text

    任意用户创建CSR(CertificateSigningRequest)

    1. cat <<EOF | kubectl apply -f -
    2. apiVersion: certificates.k8s.io/v1
    3. kind: CertificateSigningRequest
    4. metadata:
    5. name: john
    6. spec:
    7. request: $(cat john.csr | base64 | tr -d '\n')
    8. signerName: kubernetes.io/kube-apiserver-client
    9. usages:
    10. - client auth
    11. EOF
    12. kubectl get csr john

    k8s管理员批准CSR,并导出证书

    1. kubectl certificate approve john
    2. kubectl get csr john -o jsonpath='{.status.certificate}'| base64 -d > john.crt

  • 相关阅读:
    14:00面试,14:06就出来了,问的问题有点变态。。。
    Linux CentOS系统安装mysql8.0.31(tar方式)
    C#时间使用整理,DateTime 使用整理
    java 对mybatis拦截Interceptor进行权限控制(条件修改),入参修改,返回修改
    【回归预测-PNN分类】基于粒子群算法群优化概率神经网络算法实现空气质量评价预测附matlab代码
    # 智慧社区管理系统-核心业务管理-03投诉信息
    【nlp】2.3 LSTM模型
    驱动程序开发:LCD屏显示驱动
    程序员工具
    【总结】各层的校验和的特点
  • 原文地址:https://blog.csdn.net/qq_32783703/article/details/126728612