X509认证 1.创建出用户的私钥
1 2 3 4 5 6 7 8 9 10 root@k8s-master01:/etc/kubernetes root@k8s-master01:/etc/kubernetes root@k8s-master01:/etc/kubernetes/usercerts Generating RSA private key, 2048 bit long modulus (2 primes) ...........................................................+++++ .....................+++++ e is 65537 (0x010001)
2.基于私钥创建一个证书签署请求,此签署请求需要被k8s的CA所签署
1 2 3 4 root@k8s-master01:/etc/kubernetes/usercerts root@k8s-master01:/etc/kubernetes/usercerts masuri.csr masuri.key
3.将用户的证书签署请求,使用k8s的CA签署成证书
1 2 3 4 5 6 7 8 root@k8s-master01:/etc/kubernetes/usercerts Signature ok subject=CN = masuri, O = kubeusers Getting CA Private Key root@k8s-master01:/etc/kubernetes/usercerts
自制kubeconfig文件尝试认证到k8s 1.设定集群信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 root@k8s-master01:/etc/kubernetes/usercerts Cluster "kubernetes" set . root@k8s-master01:/etc/kubernetes/usercerts apiVersion: v1 clusters: - cluster: certificate-authority-data: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM1ekNDQWMrZ0F3SUJBZ0lCQURBTkJna3Foa2lHOXcwQkFRc0ZBREFWTVJNd0VRWURWUVFERXdwcmRXSmwKY201bGRHVnpNQjRYRFRJeE1EY3hOVEEyTVRNek5Gb1hEVE14TURjeE16QTJNVE16TkZvd0ZURVRNQkVHQTFVRQpBeE1LYTNWaVpYSnVaWFJsY3pDQ0FTSXdEUVlKS29aSWh2Y05BUUVCQlFBRGdnRVBBRENDQVFvQ2dnRUJBTnZjCkc0NytMTUUydkxsNzJXNUpWYSt1S2VLY1htWVNFVjVXSmtCSkl4VjBZK0JkRExtb044WWxSWUdVaDVxTmxRRUQKOFhRSzgzOUNOUUl4ZGRSQWc3c1M4Z2I2SWdabGxCRXNobGRGb0JEcjNDUUlzMWxGMEFsVEFyV2RpK0NUbHdZYwpyYTRTREN6ZHVQUDZhdzFHWVBTNE9zOUtsUEpVZHpPMXRkUjdGNVBHVkY3SWpsWE1EMWc3NW1yL2d6NkgrcTVOCkN0S1UraFJ2WGd5QXN1TDY1TFlROUVEMyt1K0lJSE5xQWR4S1lXRkFmZ2tNT3Bqa0V3Z2xRWUUzenhWREdZR0EKdFI5clg5STNQUHF0UkkwWVdqb2EveGtxY1lhUTNRckhzU3ZBTjU5b2FyV3plS2xuMS8wWVdVeEd0cEZtdy92ZQpRMTYzYkVlc21YaDdSMERhMGhzQ0F3RUFBYU5DTUVBd0RnWURWUjBQQVFIL0JBUURBZ0trTUE4R0ExVWRFd0VCCi93UUZNQU1CQWY4d0hRWURWUjBPQkJZRUZIWmV1cEFHdnZ4c0pkSHl5N3hTVUNoZFNGY1hNQTBHQ1NxR1NJYjMKRFFFQkN3VUFBNElCQVFBTVUySkVrdU1QZ0ltSDlaSzk2OHRsY05HNVRsVFVseFVYRm9Uc1VTSWhyU1pycGhmRApKelBOTE5rcTJxMCtUV3ZTbHZxbzFyM2dLckhNWWZDY1AwTnFIU2VYVWNhaW1WeUhwUm12M3AzODBoTlJONnNyCkJZSmZ4RUE0aWJsWEpvYnNVR0tDcmdZeHk5SFJYbE9ud0QvMHdrTVVBZHFuSG90MlRPbGJZSVU3aUNTNklCajMKaWZLeHlGdkdDTWJ6NFhIY0xjajY4L3AzaC9VRDgxRjNGc2ZqdmV6L1A3Nk42L2hCL090TkhKK3pTWGVmdjJjcQpMUXBxYXA5aW9IUGZTVFpnTm5BUndSWUNaMW9DdmI0WitnbzdkQTROM3M2K3NOTUpYZFFERWkxb1dWeDVKUXgyClgzejNtY1hhZHROTVgwOEN0UHorTlQwZGZGOUNhaDVWMTkzWgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== server: https://kube-api:6443 name: kubernetes contexts: null current-context: "" kind: Config preferences: {} users: null
2.设定用户信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 root@k8s-master01:/etc/kubernetes/usercerts User "masuri" set . root@k8s-master01:/etc/kubernetes/usercerts apiVersion: v1 clusters: - cluster: certificate-authority-data: DATA+OMITTED server: https://kube-api:6443 name: kubernetes contexts: null current-context: "" kind: Config preferences: {} users: - name: masuri user: client-certificate-data: REDACTED client-key-data: REDACTED
3.设定用户和集群的关联关系
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 root@k8s-master01:/etc/kubernetes/usercerts Context "masuri@kubernetes" created. root@k8s-master01:/etc/kubernetes/usercerts apiVersion: v1 clusters: - cluster: certificate-authority-data: DATA+OMITTED server: https://kube-api:6443 name: kubernetes contexts: - context: cluster: kubernetes user: masuri name: masuri@kubernetes current-context: "" kind: Config preferences: {} users: - name: masuri user: client-certificate-data: REDACTED client-key-data: REDACTED
4.设定当前使用的context
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 root@k8s-master01:/etc/kubernetes/usercerts Switched to context "masuri@kubernetes" . root@k8s-master01:/etc/kubernetes/usercerts apiVersion: v1 clusters: - cluster: certificate-authority-data: DATA+OMITTED server: https://kube-api:6443 name: kubernetes contexts: - context: cluster: kubernetes user: masuri name: masuri@kubernetes current-context: masuri@kubernetes kind: Config preferences: {} users: - name: masuri user: client-certificate-data: REDACTED client-key-data: REDACTED
5.kubeconfig文件已经创建完毕,尝试使用此文件进行认证
1 2 3 4 root@k8s-master01:/etc/kubernetes/usercerts Error from server (Forbidden): nodes is forbidden: User "masuri" cannot list resource "nodes" in API group "" at the cluster scope