当前位置: 首页 > 知识库问答 >
问题:

配置kubectl时需要客户端证书

王曜文
2023-03-14

:)

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

我正在尝试配置kubectl,如https://kubernetes.io/docs/getting-started-guides/scratch/

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 $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个答案

奚修伟
2023-03-14

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

您将有一个“用户”运行kubectl命令来创建一个pod。该“用户”需要证明其是合法用户,可以访问API服务器,并拥有创建pod的适当授权。

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

  1. 例如,在设置CA和生成TLS证书页面中的管理客户端证书中创建管理证书

配置其他用户,例如启动/停止/监视集群的操作员等,请查看Kubernetes集群中的configure RBAC,以设置适当的角色、用户和用户角色绑定。

 类似资料:
  • 本章介绍 kubectl 的安装方法。 OSX 可以使用 Homebrew 或者 curl 下载 kubectl: brew install kubectl 或者 curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes

  • 客户端配置项设置示例 lookoutConfig.setProperty(LookoutConfig.LOOKOUT_AGENT_HOST_ADDRESS,"127.0.0.1"); 客户端配置项说明 配置项 对应 SpringBoot 配置项 默认配置值 说明 lookout.enable com.alipay.sofa.lookout.enable true 功能开关,默认是 true。如

  • 我有我的应用程序在本地工作正常,但当我试图连接到远程服务器我得到这个错误:CLIENT_PLUGIN_AUTH是必需的。

  • 我是Netty的新手,我尝试编写一个使用相互身份验证的echo服务器和客户端。不幸的是,它无法工作,客户端没有发送其客户端证书,服务器按预期断开连接。下面是我到目前为止所做的工作和客户端代码的概述--它可能包含一些bug或者我错过了一些重要的东西。谢谢你经历了这一切! 这就是我所拥有的: Netty版本4.1.0.cr1 可在服务器上下载的有效密钥存储库、信任存储库和CRL 直接使用JSSE的ec

  • 问题内容: 设置请求客户端身份验证的嵌入式Jetty服务器非常容易:只需添加以下语句即可:SslContextFactory.setNeedClientAuth(true); 配置服务器时访问ssl上下文。在服务器的信任库中具有其证书的任何客户端都将能够建立与服务器的TLS连接。 但是,我需要知道所有可能的受信任客户端中的哪个客户端当前正在发出请求;换句话说,我需要知道在此连接中使用的客户端证书,

  • 运行一个客户端最少需要Jersey框架的哪些JAR文件?如果我包括所有的JAR,它将占用4 MB。