配置 kubectl 时需要客户端证书
client certificate needed when configuring kubectl
:)
我在本地 Gentoo Linux 集群上安装了 kubenretes 1.9.3。
我正在尝试按照 https://kubernetes.io/docs/getting-started-guides/scratch/
中的说明配置 kubectl
kubernetes 文档声明使用 $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 }')
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
我错过了什么?
the docs stated to use $CLI_CERT and $CLI_KEY but I can't find how to create them.
您将有一个 "user" 运行 kubectl 命令来创建例如一个豆荚。这个 "user" 需要证明它是合法用户,可以访问 API 服务器并且有创建 pod 的适当授权。
您需要创建此用户(尤其是管理员)和客户端 certificate/key 以证明自己是合法用户,其证书由 ca.crt 签名。
- 创建一个管理员证书,例如 Provisioning a CA and Generating TLS Certificates 页面中的管理员客户端证书。
- 使用 Configuring kubectl for Remote Access 中的管理员证书为管理员用户配置 kubeconfig。
要配置其他用户,例如 start/stop/monitor 集群的操作员等,请查看 Configure RBAC In Your Kubernetes Cluster 以设置适当的角色、用户和角色绑定到用户。
:)
我在本地 Gentoo Linux 集群上安装了 kubenretes 1.9.3。
我正在尝试按照 https://kubernetes.io/docs/getting-started-guides/scratch/
中的说明配置 kubectlkubernetes 文档声明使用 $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 }')
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
我错过了什么?
the docs stated to use $CLI_CERT and $CLI_KEY but I can't find how to create them.
您将有一个 "user" 运行 kubectl 命令来创建例如一个豆荚。这个 "user" 需要证明它是合法用户,可以访问 API 服务器并且有创建 pod 的适当授权。
您需要创建此用户(尤其是管理员)和客户端 certificate/key 以证明自己是合法用户,其证书由 ca.crt 签名。
- 创建一个管理员证书,例如 Provisioning a CA and Generating TLS Certificates 页面中的管理员客户端证书。
- 使用 Configuring kubectl for Remote Access 中的管理员证书为管理员用户配置 kubeconfig。
要配置其他用户,例如 start/stop/monitor 集群的操作员等,请查看 Configure RBAC In Your Kubernetes Cluster 以设置适当的角色、用户和角色绑定到用户。