k8s-1.9.1-步骤三(创建证书)

----------------------------------------------------------------------------------------------------------------------------
执行主机:192.168.1.15or16or18
创建admin-csr.json
cat >/root/kubernetes/server/bin/ssl/admin-csr.json <<'HERE'
{
"CN": "admin",
"hosts": [],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "Shenzhen",
"L": "Shenzhen",
"O": "system:masters",
"OU": "System"
}
]
}
HERE

创建k8s-gencert.json
cat >/root/kubernetes/server/bin/ssl/k8s-gencert.json <<'HERE'
{
"signing": {
"default": {
"expiry": "87600h"
},
"profiles": {
"kubernetes": {
"usages": [
"signing",
"key encipherment",
"server auth",
"client auth"
],
"expiry": "87600h"
}
}
}
}
HERE

创建k8s-root-ca-csr.json
cat >/root/kubernetes/server/bin/ssl/k8s-root-ca-csr.json <<'HERE'
{
"CN": "kubernetes",
"key": {
"algo": "rsa",
"size": 4096
},
"names": [
{
"C": "CN",
"ST": "Shenzhen",
"L": "Shenzhen",
"O": "k8s",
"OU": "System"
}
]
}
HERE

创建kube-proxy-csr.json
cat >/root/kubernetes/server/bin/ssl/kube-proxy-csr.json <<'HERE'
{
"CN": "system:kube-proxy",
"hosts": [],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "Shenzhen",
"L": "Shenzhen",
"O": "k8s",
"OU": "System"
}
]
}
HERE

创建kubernetes-csr.json
#注:此处需要将dns首ip,etcd,k8s-master,k8s-node节点的ip都填上
cat >/root/kubernetes/server/bin/ssl/kubernetes-csr.json <<'HERE'
{
"CN": "kubernetes",
"hosts": [
"127.0.0.1",
"192.168.1.15",
"192.168.1.16",
"192.168.1.18",
"10.254.0.1",
"kubernetes",
"kubernetes.default",
"kubernetes.default.svc",
"kubernetes.default.svc.cluster",
"kubernetes.default.svc.cluster.local"
],
"key": {
"algo": "rsa",
"size": 2048
},
"names": [
{
"C": "CN",
"ST": "Shenzhen",
"L": "Shenzhen",
"O": "k8s",
"OU": "System"
}
]
}
HERE
----------------------------------------------------------------------------------------------------------------------------
执行主机:192.168.1.15or16or18
生成通用证书以及kubeconfig
进入ssl目录,共创建了五个文件cd /root/kubernetes/server/bin/ssl/


生成证书
cfssl gencert --initca=true k8s-root-ca-csr.json | cfssljson --bare k8s-root-ca

for targetName in kubernetes admin kube-proxy; do cfssl gencert --ca k8s-root-ca.pem --ca-key k8s-root-ca-key.pem --config k8s-gencert.json --profile kubernetes $targetName-csr.json | cfssljson --bare $targetName done


----------------------------------------------------------------------------------------------------------------------------
执行主机:192.168.1.15or16or18
生成kubectl配置
注:此处定义api-server的服务ip,此处用为以后HA模式准备,所以配置127.0.0.1,如果你的master是单节点,请配置成单个apiserver:6443的ip即可
注:我做的3master+node,但是没做ha,这里要每台指定各自的ip
export KUBE_APISERVER="https://192.168.1.15:6443"
cd /root/kubernetes/server/bin/ssl/
export KUBE_APISERVER="https://192.168.1.15:6443"
export BOOTSTRAP_TOKEN=$(head -c 16 /dev/urandom | od -An -t x | tr -d ' ')
echo "Tokne: ${BOOTSTRAP_TOKEN}"


cat > token.csv <<EOF${BOOTSTRAP_TOKEN},kubelet-bootstrap,10001,"system:kubelet-bootstrap"EOF
注:会创建一个token.csv文件

echo "Create kubelet bootstrapping kubeconfig..."
将k8s-root-ca.pem,apiserver地址写入bootstrap.kubeconfig文件
kubectl config set-cluster kubernetes \
--certificate-authority=k8s-root-ca.pem \
--embed-certs=true \
--server=${KUBE_APISERVER} \
--kubeconfig=bootstrap.kubeconfig
注:会创建一个bootstrap.kubeconfig文件

bootstrap.kubeconfig文件内容


将token.csv文件内容写入bootstrap.kubeconfig文件
kubectl config set-credentials kubelet-bootstrap \
--token=${BOOTSTRAP_TOKEN} \
--kubeconfig=bootstrap.kubeconfig

bootstrap.kubeconfig文件内容


设置set-context环境项,kubelet-bootstrap用户
kubectl config set-context default \ --cluster=kubernetes \ --user=kubelet-bootstrap \ --kubeconfig=bootstrap.kubeconfig

bootstrap.kubeconfig文件内容


将set-context写入bootstrap.kubeconfig文件
kubectl config use-context default --kubeconfig=bootstrap.kubeconfig
bootstrap.kubeconfig文件内容


echo "Create kube-proxy kubeconfig..."
将k8s-root-ca.pem,apiserver地址写入kube-proxy.kubeconfig文件
kubectl config set-cluster kubernetes \
--certificate-authority=k8s-root-ca.pem \
--embed-certs=true \
--server=${KUBE_APISERVER} \
--kubeconfig=kube-proxy.kubeconfig
注:会创建一个kube-proxy.kubeconfig文件

kube-proxy.kubeconfig文件内容


将kube-proxy.pem写入kube-proxy.kubeconfig文件
kubectl config set-credentials kube-proxy \
--client-certificate=kube-proxy.pem \
--client-key=kube-proxy-key.pem \
--embed-certs=true \
--kubeconfig=kube-proxy.kubeconfig

kube-proxy.kubeconfig文件内容


设置set-context环境项,kube-proxy用户
kubectl config set-context default \
--cluster=kubernetes \
--user=kube-proxy \
--kubeconfig=kube-proxy.kubeconfig

kube-proxy.kubeconfig文件内容


将set-context写入bootstrap.kubeconfig文件
kubectl config use-context default --kubeconfig=kube-proxy.kubeconfig
kube-proxy.kubeconfig文件内容


生成高级审计配置
cat >> audit-policy.yaml <<EOF
# Log all requests at the Metadata level.
apiVersion: audit.k8s.io/v1beta1
kind: Policy
rules:
- level: Metadata
EOF
注:会生成一个audit-policy.yaml文件

生成集群管理员admin kubeconfig配置文件供kubectl调用
#admin set-cluster
kubectl config set-cluster kubernetes \
--certificate-authority=k8s-root-ca.pem\
--embed-certs=true \
--server=${KUBE_APISERVER} \
--kubeconfig=./kubeconfig
注:会生成一个kubeconfig文件

kubeconfig文件内容


#admin set-credentials
kubectl config set-credentials kubernetes-admin \
--client-certificate=admin.pem \
--client-key=admin-key.pem \
--embed-certs=true \
--kubeconfig=./kubeconfig

kubeconfig文件内容


#admin set-context
kubectl config set-context kubernetes-admin@kubernetes \
--cluster=kubernetes \
--user=kubernetes-admin \
--kubeconfig=./kubeconfig

kubeconfig文件内容


#admin set default context
kubectl config use-context kubernetes-admin@kubernetes \
--kubeconfig=./kubeconfig

kubeconfig文件内容


#创建ssl文件夹
for node in {k8s-master-1,k8s-master-2,k8s-master-3};do
ssh ${node} "mkdir -p /etc/kubernetes/ssl/ "
done

#下发证书文件
for ssl in {k8s-master-1,k8s-master-2,k8s-master-3};do
rsync -avzP /root/kubernetes/server/bin/ssl/ ${ssl}:/etc/kubernetes/ssl/
done
注:下发后需要更改kubeconfig的apiserver地址
server: https://192.168.1.18:6443

#创建master /root/.kube 目录,复制超级admin授权config
for master in {k8s-master-1,k8s-master-2,k8s-master-3};do
ssh ${master} "mkdir -p /root/.kube ; \cp -f /etc/kubernetes/ssl/kubeconfig /root/.kube/config "
done
注:最后注意每台kubelet的配置文件需要更改kube-apiserver地址的有
/lib/systemd/system/kubelet.service
/root/.kube/config
/etc/kubernetes/ssl/bootstrap.kubeconfig
/etc/kubernetes/ssl/kubelet.kubeconfig
/etc/kubernetes/ssl/kube-proxy.kubeconfig










### 回答1: 要下载 jQuery 1.9.1.min.js,你可以按照以下步骤进行操作: 首先,打开 jQuery 官方网站。在浏览器的地址栏输入"jquery.com",然后按下回车键。 点击页面上的 "Download"(下载)选项。这将会导航至 jQuery 下载页面。 在下载页面中,你可以看到一个包含多个可选择版本的列表。确保选择的是 "1.9.1" 版本。 在 "1.9.1" 版本下面,你会找到 "Download the compressed, production jQuery 1.9.1" 链接。点击该链接。 随即,一个弹出窗口将询问你是否保存或下载文件。选择 "保存文件" 选项,并选择一个合适的文件夹。 保存完毕后,你可以在选择的文件夹中找到并使用 "jquery-1.9.1.min.js" 文件。 现在,你已成功下载了 jQuery 1.9.1.min.js 文件,你可以在你的项目中引入该文件并开始使用 jQuery 的功能了。 ### 回答2: 要下载 jQuery 1.9.1 版本的压缩文件 `jquery-1.9.1.min.js`,可以通过以下步骤进行操作: 1. 首先,在浏览器中打开 jQuery 官方网站(https://jquery.com/)。 2. 在网站的顶部导航菜单中,找到 "Download"(下载)选项,点击进入下载页面。 3. 在下载页面中,你会看到多个版本的 jQuery 可供选择。找到并选择 "1.x" 系列版本,然后点击该系列下的 "Download the compressed, production jQuery 1.9.1"(下载已压缩的 jQuery 1.9.1)链接。 4. 开始下载后,浏览器会提示保存文件的位置和名称。你可以选择保存到自己想要的目录,并将文件名设置为 "jquery-1.9.1.min.js"。 5. 确认保存位置和文件名后,点击 "保存",文件下载就会开始。 下载完成后,你就可以在你选择的目录中找到 "jquery-1.9.1.min.js" 文件了。这个文件是已经压缩过的 jQuery 1.9.1 版本的 JavaScript 文件,你可以将其引入到你的网页中使用 jQuery 的功能。 ### 回答3: jQuery-1.9.1.min.js 是一个 JavaScript 库,用于简化网页开发中常见的操作和任务。这个文件可以通过多种方式进行下载。 首先,可以通过 jQuery 官方网站(https://jquery.com/download/)来下载 jQuery-1.9.1.min.js 文件。在网站上,你可以找到各种不同版本的 jQuery 文件,包括被压缩(minified)的版本和未压缩的版本。选择需要的版本后,点击下载按钮即可下载。 如果你使用的是包管理工具,比如 npm 或者 Yarn,你也可以通过命令行界面来下载 jQuery 文件。打开命令行界面,进入你的项目目录,然后运行适当的命令来下载文件。例如,在使用 npm 的情况下,可以运行命令:```npm install jquery@1.9.1``` 。这样可以将 jQuery-1.9.1.min.js 文件下载到你的项目目录下的 node_modules 文件夹中。 此外,你还可以从第方网站下载 jQuery-1.9.1.min.js 文件。有很多网站提供 jQuery 文件的下载,包括一些开发工具和资源网站。通过搜索引擎搜索 "jQuery-1.9.1.min.js 下载",你可以找到很多下载链接。请注意,从第方网站下载文件时,务必选择可信赖的来源,以避免下载到不安全或被修改过的文件。 总而言之,下载 jQuery-1.9.1.min.js 文件的方式有多种,你可以通过 jQuery 官网、包管理工具或者第方网站来获取该文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值