配置kubectl时需要客户端证书

时间:2018-03-04 00:57:01

标签: kubernetes ca kubectl

:)

我在我的本地Gentoo Linux群集上安装了kubenretes 1.9.3。

我尝试按照https://kubernetes.io/docs/getting-started-guides/scratch/

中的说明配置kubectl

kubernetes docs声明使用$CLI_CERT$CLI_KEY配置kubectl。到目前为止,我在文档中设置了$CA_CERT$MASTER_KEY。我不知道我需要创建哪些其他证书。

文档声明使用$CLI_CERT$CLI_KEY,但我无法找到如何创建它们。

我使用easyrsa来创建证书。

这些是我的文件:

./reqs/server.req
./issued/server.crt
./certs_by_serial/577957B555C21B8DC4B1641E97378EFF.pem
./index.txt.attr
./serial
./private
./private/ca.key
./private/server.key
./.rnd
./ca.crt

这是我设置的环境变量:

export MASTER_IP="192.168.1.3"
export MASTER_CLUSTER_IP="10.0.0.1"

export KUB_DIR="/opt/kubernetes"
export KEYS_DIR="${KUB_DIR}/keys"

export CA_CERT="${KEYS_DIR}/ca.crt"
export MASTER_CERT="${KEYS_DIR}/server.crt"
export MASTER_KEY="${KEYS_DIR}/server.key"

export USER=ufk
export USER_UID=1


export API_SERVER_DIR=${KUB_DIR}/kube-apiserver
export KNOWN_TOKENS_CSV=${API_SERVER_DIR}/known_tokens.csv

export CURRENT_USER=$(who am i | awk '{print $1}')

export CLUSTER_NAME="tux-in-cluster"
export CONTEXT_NAME="tux-in-context"
export CLI_CERT=
export CLI_KEY=

export RSA_BIN=/usr/share/easy-rsa/easyrsa

这就是我创建证书的方式:

echo init pki...
$RSA_BIN init-pki

echo generate CA...
$RSA_BIN --batch "--req-cn=${MASTER_IP}@`date +%s`" build-ca nopass

echo Generate server certificate and key...
$RSA_BIN --subject-alt-name="IP:${MASTER_IP},"\
"IP:${MASTER_CLUSTER_IP},"\
"DNS:kubernetes,"\
"DNS:kubernetes.default,"\
"DNS:kubernetes.default.svc,"\
"DNS:kubernetes.default.svc.cluster,"\
"DNS:kubernetes.default.svc.cluster.local" \
--days=10000 \
build-server-full server nopass

我错过了什么?

1 个答案:

答案 0 :(得分:1)

  

文档声明使用$ CLI_CERT和$ CLI_KEY,但我找不到如何创建它们。

你将有一个“用户”来运行kubectl命令来创建例如一个吊舱。此“用户”需要证明合法用户可以访问API服务器并拥有创建pod的适当权限。

您需要创建此用户(尤其是管理员)和客户端证书/密钥,以证明自己是证书由ca.crt签名的合法用户。

  1. 例如,在Provisioning a CA and Generating TLS Certificates页面中的管理客户端证书中创建管理员证书。
  2. 使用Configuring kubectl for Remote Access中的管理员证书为admin用户配置kubeconfig。
  3. 要配置其他用户,例如启动/停止/监控群集的运营商等,请查看Configure RBAC In Your Kubernetes Cluster,为用户设置适当的角色,用户和角色绑定。

相关问题