分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

为kubernetes手动生成证书

发布时间:2023-09-06 02:00责任编辑:苏小强关键词:kubernetes
默认情况下kubernetes在初始化集群时,证书有效期年限为1年。手动生成证书可以避免这个问题。


  1. 拉取git代码

git clone https://github.com/fandaye/k8s-tls.git && cd k8s-tls/

2. 编辑配置文件 `apiserver.json` 文件 hosts 部分,添加对应kubernetes master 节点 主机名及IP地址,以 `,` 号间隔。如:

{    "CN": "kube-apiserver",    "hosts": [      "172.16.50.131",      "172.16.50.132",      "172.16.50.104",      "k8s01",      "k8s02",      "k8s03",      "10.96.0.1",      "kubernetes",      "kubernetes.default",      "kubernetes.default.svc",      "kubernetes.default.svc.cluster",      "kubernetes.default.svc.cluster.local"         ],    "key": {        "algo": "rsa",        "size": 2048    }}

3. 执行脚本

./run.sh


4. 生成节点admin.conf,kubelet.conf,controller-manager.conf,scheduler.conf配置文件

cd /etc/kubernetes/pki

编辑 `node.sh` 文件,ip 为当前节点ip地址,NODE 为当前节点主机名,如:

ip="172.16.50.131"NODE="k8s01"

编辑 `kubelet.json ` 文件,CN 区域,为对应主机名,如:

"CN": "system:node:k8s01"

执行脚本

./node.sh


完成上面步骤,在初始化kubernetes集群,如果证书及配置文件存在,就会使用现有的

[certificates] Using the existing ca certificate and key.[certificates] Using the existing apiserver certificate and key.[certificates] Using the existing apiserver-kubelet-client certificate and key.[certificates] Using the existing sa key.[certificates] Using the existing front-proxy-ca certificate and key.[certificates] Using the existing front-proxy-client certificate and key.[certificates] Valid certificates and keys now exist in "/etc/kubernetes/pki"[kubeconfig] Using existing up-to-date KubeConfig file: "/etc/kubernetes/admin.conf"[kubeconfig] Using existing up-to-date KubeConfig file: "/etc/kubernetes/kubelet.conf"[kubeconfig] Using existing up-to-date KubeConfig file: "/etc/kubernetes/controller-manager.conf"[kubeconfig] Using existing up-to-date KubeConfig file: "/etc/kubernetes/scheduler.conf"


如果master为多个节点,拷贝/etc/kubernetes/pki 目录下所有文件到其他master节点,参考4步骤生成admin.conf,kubelet.conf,controller-manager.conf,scheduler.conf配置文件.


master为多个节点 建议使用 --config 初始化集群,但是官网提示:Caution: The config file is still considered alpha and may change in future versions.

参考:https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-init/


config.yaml 文件,参考如下:

apiVersion: kubeadm.k8s.io/v1alpha1kind: MasterConfigurationkubernetesVersion: v1.10.4networking:  podSubnet: 10.244.0.0/16apiServerCertSANs:  #master节点主机名及ip地址- k8s01- k8s02- k8s03- 172.16.50.131- 172.16.50.132- 172.16.50.104- 172.16.50.227apiServerExtraArgs:  endpoint-reconciler-type: "lease"etcd:  endpoints: # etcd集群地址  - http://172.16.50.131:2379  - http://172.16.50.132:2379  - http://172.16.50.133:2379token: "deed3a.b3542929fcbce0f0"tokenTTL: "0"


为kubernetes手动生成证书

原文地址:http://blog.51cto.com/11889458/2130650

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved