ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
## 组件版本 && 集群环境 Master节点有三个服务进程:①kube-apiserver、②kube-controller-manager、③kube-scheduler Node节点有两个服务进程:①kubelet、②kube-proxy #### 集群环境变量(后续的部署会用到全局变量,可根据自己的机器、网络进行修改) ```yaml # TLS Bootstrapping 使用的Token,可以使用命令 head -c 16 /dev/urandom | od -An -t x | tr -d ' ' 生成 BOOTSTRAP_TOKEN="f6b74847f83791f17203c09840d1664b" # 建议使用未用的网段来定义服务网段和Pod 网段 # 服务网段(Service CIDR),部署前路由不可达,部署后集群内部使用IP:Port可达 SERVICE_CIDR="10.254.0.0/16" # Pod 网段(Cluster CIDR),部署前路由不可达,部署后路由可达(flanneld 保证) CLUSTER_CIDR="172.30.0.0/16" # 服务端口范围(NodePort Range) NODE_PORT_RANGE="30000-32766" # etcd集群服务地址列表 ETCD_ENDPOINTS="https://192.168.10.65:2379,https://192.168.10.64:2379,https://192.168.10.63:2379" # flanneld 网络配置前缀 FLANNEL_ETCD_PREFIX="/kubernetes/network" # kubernetes 服务IP(预先分配,一般为SERVICE_CIDR中的第一个IP) CLUSTER_KUBERNETES_SVC_IP="10.254.0.1" # 集群 DNS 服务IP(从SERVICE_CIDR 中预先分配) CLUSTER_DNS_SVC_IP="10.254.0.2" # 集群 DNS 域名 CLUSTER_DNS_DOMAIN="cluster.local." # MASTER API Server地址 MASTER_URL="kube-node-68" ``` **将上面变量保存为: env.sh,然后将脚本拷贝到所有机器的`/usr/k8s/bin`目录。** > 为方便后面迁移,我们在集群内定义一个域名用于访问`apiserver`,在每个节点的`/etc/hosts`文件中添加记录:**192.168.1.137 k8s-api.virtual.local k8s-api** > > 其中`192.168.1.137`为master01 的IP,暂时使用该IP 来做apiserver 的负载地址 ## 创建CA证书和秘钥 #### 安装cfssl ```shell $ wget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 $ chmod +x cfssl_linux-amd64 $ sudo mv cfssl_linux-amd64 /usr/k8s/bin/cfssl $ wget https://pkg.cfssl.org/R1.2/cfssljson_linux-amd64 $ chmod +x cfssljson_linux-amd64 $ sudo mv cfssljson_linux-amd64 /usr/k8s/bin/cfssljson $ wget https://pkg.cfssl.org/R1.2/cfssl-certinfo_linux-amd64 $ chmod +x cfssl-certinfo_linux-amd64 $ sudo mv cfssl-certinfo_linux-amd64 /usr/k8s/bin/cfssl-certinfo $ export PATH=/usr/k8s/bin:$PATH #为了方便,将/usr/k8s/bin设置成环境变量 $ mkdir ssl && cd ssl $ cfssl print-defaults config > config.json $ cfssl print-defaults csr > csr.json ``` #### 创建CA 将上面创建` config.json`文件修改为 `ca-config.json` (文件位置/etc/kubernetes/ssl) ```json $ cat ca-config.json { "signing": { "default": { "expiry": "87600h" }, "profiles": { "kubernetes": { "expiry": "87600h", "usages": [ "signing", "key encipherment", "server auth", "client auth" ] } } } } ``` 将上面创建的` csr.json `文件修改为` ca-csr.json` (文件位置/etc/kubernetes/ssl) ```json { "CN": "kubernetes", "key": { "algo": "rsa", "size": 2048 }, "names": [ { "C": "CN", "L": "BeiJing", "ST": "BeiJing", "O": "k8s", "OU": "System" } ] } ``` 生成CA证书 #### 分发证书 将生成的CA证书、秘钥文件、配置文件拷贝到所有的机器的` /etc/kubernetes/ssl `目录下面: ```shell $ sudo mkdir -p /etc/kubernetes/ssl $ sudo cp ca* /etc/kubernetes/ssl ```