Objetivo: devuser usuario espacio de nombres es sólo bajo los recursos dev tienen autorización para operar
En primer lugar, los ajustes de configuración básica
1, en primer lugar crear un usuario devuser useradd, y cambiar las contraseñas:
Uso de comandos de ejecución devuser vaina kubectl get no tendrán éxito, porque devuser ahora no tienen permisos a los recursos en cualquier espacio de nombres
2, crear un espacio de nombres dev de
dos , la generación de archivos de configuración K8S
1, crear un archivo JSON usado para generar claves
/k8s/cert/devuser.json gato
{
"CN": "devuser",
"hosts": [],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "ShenZhen",
"L": "ShenZhen",
"O": "k8s",
"OU": "System"
}
]
}
2, obteniendo el archivo de comandos de generación de claves:
wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64
wget HTTPS: / /pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
especificar el archivo de clave, genera la clave (este paso se lleva a cabo con el fin medida de lo posible en / etc / kubernetes / PKI camino porque este camino es en sí relacionado con los K8S almacenamiento de autenticación archivo)
cfssl la gencert-ca-ca-= ca.crt clave = ca.key -profile = Kubernetes /k8s/cert/devuser.json | cfssljson -bare devuser
ejecución se ha completado, el archivo de clave ha sido devuser
Declaración sobre variable de entorno apiserver:
Exportación KUBE_APISERVER = " https://10.18.6.127:6443 "
3, juego de parámetros de clúster:
[root@kb-master cert]# kubectl config set-cluster kubernetes \
--certificate-authority=/etc/kubernetes/pki/ca.crt \
--embed-certs=true \
--server=${KUBE_APISERVER} \
--kubeconfig=devuser.kubeconfig
4, establezca los parámetros de autenticación de cliente:
[root@kb-master cert]# kubectl config set-credentials devuser \
--client-certificate=/etc/kubernetes/pki/devuser.pem \
--client-key=/etc/kubernetes/pki/devuser-key.pem \
--embed-certs=true \
--kubeconfig=devuser.kubeconfig
5, parámetro de contexto conjunto
[root@kb-master cert]# kubectl config set-context kubernetes \
--cluster=kubernetes \
--user=devuser \
--namespace=dev \
--kubeconfig=devuser.kubeconfig
6, un papel vinculante RoleBinding
kubectl crear rolebinding devuser-admin-rolebinding (nombre rolebinding) --clusterrole = admin (nombre clusterrole, admin en virtud de K8S todo espacio de nombres tiene la máxima autoridad) user = devuser (el devuser privilegios de administrador de usuario determinado) - namespace = dev (dEV este intervalo de espacio de nombres), es decir dev
7, devuser.kubeconfig copian en el directorio de /home/devuser/.kube
cp devuser.kubeconfig /home/devuser/.kube/config
chown devuser.devuser devuser.kubeconfig
8, el cambio de contexto de usuario en dev
Ver pod no se les da los recursos, pero en el espacio de nombres actual dev no tiene un pod correr
usando devuser crear despliegue
utilizando el usuario root para ver la información de la vaina, la vaina se encuentran bajo el espacio de nombres dev
Descripción devuser de mando kubectl sólo tiene efecto sobre el espacio de nombres predeterminado dev sólo puede ser eficaz en el espacio de nombres dev
Esto está en el negocio de autoridad para el control o necesario