k8s 1.19.1 crear usuario

K8s no tiene un componente de administración de usuarios. El CN en el certificado pasado por el cliente se extrae como el nombre de usuario y el campo O es el nombre del grupo.

Instalar cfssl

https://pkg.cfssl.org/R1.2/cfssl_linux-amd64
https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64
https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64

cp cfssl_linux-amd64  /usr/local/bin/cfssl
cp cfssl-certinfo_linux-amd64 /usr/local/bin/cfssl-certinfo
cfssljson_linux-amd64 /usr/local/bin/cfssljson
chmod +x  /usr/local/bin/cfssl*

Certificado ceph de nuevo usuario

  • Prepare json, en uso real, elimínelo después de #
    cat <<EOF>> ceph.json 
    {
    "CN": "ceph", # 用户
    "hosts": [],
    "key": {
        "algo": "rsa",
        "size": 2048
    },
    "names": [
        {
            "C": "CN",
            "ST": "shanghai",
            "L": "shanghai",
            "O": "k8s", #组
            "OU": "System"
        }
    ]
    }
    EOF
  • Generar crt
cfssl  gencert -ca=/etc/kubernetes/pki/ca.crt \
    -ca-key=/etc/kubernetes/pki/ca.key \
   -profile=kubernetes ./ceph.json | cfssljson -bare ceph

cfssl  gencert -ca=/etc/kubernetes/pki/ca.crt \
    -ca-key=/etc/kubernetes/pki/ca.key \
    ./ceph.json | cfssljson -bare ceph

Hasta ahora, se ha generado un certificado para el usuario de ceph

Cree un espacio de nombres llamado ceph, ceph puede administrar completamente este espacio de nombres

Aquí se vinculará el administrador de cla *** ole como un enlace de roles a ceph. Este comando debe ejecutarse bajo un usuario que pueda administrar k8s

kubectl create  rolebinding ceph-admin-binding \
    --clusterrole=admin \
    --user=ceph \
    --namespace=ceph

Certificado de verificación

El curl 7.29.0 en centos7 parece no poder enviar el certificado público de ceph.pem a la api, lo que hace que la api se considere acceso anónimo, y curl 7.64.0 puede acceder a la api normalmente

curl    -X GET  --cert ceph.pem --key ceph-key.pem --cacert cacrt  https://192.168.254.99:6444/api/v1/namespaces/ceph/pods

Generar configuración

  • Generar información de clúster
export KUBE_APISERVER=https://192.168.254.99:6444

kubectl config set-cluster kubernetes \
  --certificate-authority=/etc/kubernetes/pki/ca.crt \
  --embed-certs=true \
  --server=${KUBE_APISERVER} \
  --kubeconfig=ceph.kubeconfig
  • Establecer el parámetro de quién en el lado del servicio al cliente
kubectl config set-credentials ceph \
  --client-certificate=ceph.pem \
  --client-key=ceph-key.pem \
  --embed-certs=true \
  --kubeconfig=ceph.kubeconfig
  • Establecer parámetros de contexto
kubectl config set-context ceph \ #这个是上下文名称,可随意取
  --cluster=kubernetes \
  --user=ceph \
  --namespace=ceph \
  --kubeconfig=ceph.kubeconfig
  • Establezca el contexto predeterminado, tenga en cuenta que no se puede escribir en el estilo de ~ / .kub / config, de lo contrario, la ejecución no tendrá éxito
kubectl config use-context  ceph --kubeconfig=ceph.kubeconfig

Utilice kubeconfig

kubectl  --kubeconfig=ceph.kubeconfig  get pod

También se puede copiar a .kube y utilizar

cp ceph.kubeconfig ~/.kube/config

Supongo que te gusta

Origin blog.51cto.com/penguintux/2535461
Recomendado
Clasificación