目標:devuserのユーザーの名前空間は、唯一のdevのリソースの下で作動する権限を持っています
まず、基本的な構成設定
1は、最初にdevuser useraddコマンド、ユーザー、および変更パスワードの作成:
devuserは今、任意の名前空間内のリソースへのアクセス権を持っていないため、使用devuserの実行をkubectl GETポッドコマンドは、成功しません
2の名前空間devの作成、
2を、K8S configファイルの生成
1、キーの生成に使用されるJSONファイルを作成
猫/k8s/cert/devuser.jsonを
{
"CN": "devuser",
"hosts": [],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "ShenZhen",
"L": "ShenZhen",
"O": "k8s",
"OU": "System"
}
]
}
図2に示すように、鍵生成コマンド・ファイルを取得する:
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
このパスは、認証記憶K8Sに関する自体であるので(このステップははるか下の/ etc / kubernetes / PKIパスできるだけ順序で実行されるキーを生成し、鍵ファイルを指定しますファイル)
cfssljson -bare devuser | gencertを-ca = ca.crt -ca-キー= ca.key -profile = Kubernetes /k8s/cert/devuser.json cfssl
実行が完了すると、キーファイルがされているdevuser
apiserver環境変数に関する声明:
輸出KUBE_APISERVER =「https://10.18.6.127:6443」
3、セットクラスタパラメータ:
[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、クライアント認証のパラメータを設定します。
[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、コンテキストパラメータセット
[root@kb-master cert]# kubectl config set-context kubernetes \
--cluster=kubernetes \
--user=devuser \
--namespace=dev \
--kubeconfig=devuser.kubeconfig
6、バインディング役割RoleBinding
(すべての名前空間は最高の権威を持つK8S下clusterrole名、管理者)devuser管理者-rolebinding(rolebinding名)--clusterrole =管理者をrolebinding --user = devuser(devuser与えられた管理者ユーザー権限)を作成kubectl - ネームスペース= DEVすなわちDEV(この範囲名前空間をDEV)
ディレクトリにコピー/home/devuser/.kube 7、devuser.kubeconfig
cp devuser.kubeconfig /home/devuser/.kube/config
chown devuser.devuser devuser.kubeconfig
8、DEVユーザーコンテキストの切り替え
表示がリソースをポッドが与えられていないが、現在のdevの名前空間の下で任意のポッドが稼働していない
devuser展開を作成し使用して
ビュー情報ポッドにrootユーザーを使用して、ポッドは、DEV名前空間の下にあります
kubectlコマンドの説明devuserは、名前空間のdevに有効であることができる唯一のdevのデフォルトの名前空間に有効になります
これは、制御したり、必要な権限のためのビジネスであります