(六)配置kubectl客户端工具

(1)在跳板机上生成客户端证书和私钥文件;

#生成客户端证书签署请求

test -d /server/ssl/client  || mkdir /server/ssl/client
cd /server/ssl 
cat > client-csr.json <<EOF
{
        "CN": "client",
        "hosts": [],
        "key": {
                "algo": "rsa",
                "size": 2048
        },
        "names": [
                {
                        "C": "CN",
                        "ST": "Hangzhou",
                        "L": "Hangzhou",
                        "O": "k8s",
                        "OU": "System"
                }
        ]
}
EOF

#生成客户端证书

cfssl gencert -ca=ca.pem -ca-key=ca-key.pem -config=ca-config.json  -profile=kubernetes client-csr.json | cfssljson -bare client
mv client* /server/ssl/client

(2)在跳板机上生成kubeconfig文件, 该用文件作用是客户端向kube-apiserver认证使用;

#设置集群信息

kubectl config set-cluster k8s --server="https://192.168.213.131:6443" --certificate-authority=ca.pem --embed-certs=true

#设置客户端信息

kubectl config set-credentials client --client-certificate=/server/ssl/client/client.pem --client-key=/server/ssl/client/client-key.pem --embed-certs=true 

#配置上下文, 关联集群和客户端信息

kubectl config set-context client@k8s  --cluster=k8s  --user=client

#设置默认上下文

kubectl config use-context client@k8s 

#查看配置, 默认会在~/.kube/目录下生成config文件, kubectl工具会使用该配置文件信息连接apiserver服务

kubectl config view 

(3)在master上对kubectl用户进行授权; clusterrole所有命名空间指定指定资源操作权限; 创建clusterrolebinding的目的是绑定用户在所有命名空间对指定的资源操作权限; 这里cluster-admin是管理员权限

kubectl create clusterrolebinding client-all-k8s1 --clusterrole=cluster-admin --user=client

(4)在跳板机上验证是否能够删除资源
在这里插入图片描述

结论是能够获取资源和删除资源;

(5)如果在其它机器上需要和apiserver进行通信创建资源,只需要把跳板机上的~/.kube/下的config文件拷贝到其它机器;
使用–kubeconfig选项来指定配置文件在什么地方;

kubectl get pods --kubeconfig=/root/.kube/config
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值