二进制搭建k8s——部署node节点
二进制搭建k8s——部署node节点
环境
master 01:192.168.44.20 (kube-apiserver、kube-controller-manager、kube-scheduler、etcd)
node 01:192.168.44.30 (kubelet、kube-proxy、docker)
node 02:192.168.44.40
部署node节点
# 1、在所有 node 节点上操作
#创建kubernetes工作目录,并创建四个子目录cfg、bin、ssl、logs。cfg用于存放配置文件,bin用于存放执行文件,ssl用于存放证书文件,logs用于存放日志文件
cd /opt/
mkdir k8s
mkdir -p kubernetes/{
bin,cfg,ssl,logs}
#上传 node.zip 到 /opt 目录中,解压 node.zip 压缩包,获得kubelet.sh、proxy.sh
cd k8s/
unzip node.zip
chmod +x *.sh #为两个脚本文件增加执行权限
#2、在 master01 节点上操作
#把 kubelet、kube-proxy 拷贝到两个node 节点
cd /opt/k8s/kubernetes/server/bin/
scp kubelet kube-proxy node01:/opt/kubernetes/bin
scp kubelet kube-proxy node02:/opt/kubernetes/bin
#创建/opt/k8s/kubeconfig 目录,上传 kubeconfig.sh 文件到该目录中,生成 kubeconfig 的配置文件。
#kubeconfig文件包含集群参数(CA证书、API Server 地址),客户端参数(上面生成的证书和私钥),集群context上下文参数(集群名称、用户名)。Kubenetes组件(如kubelet、 kube-proxy) 通过启动时指定不同的kubeconfig 文件可以切换到不同的集群,连接到apiserver
cd /opt/k8s/
mkdir kubeconfig
cd kubeconfig/
chmod +x kubeconfig.sh
cd /opt/k8s/kubeconfig/
./kubeconfig.sh 192.168.44.20 /opt/k8s/k8s-cert/ #运行脚本,生成 kubeconfig 的配置文件。脚本后面跟的参数是 master01的IP、证书目录
#把配置文件bootstrap.kubeconfig、kube-proxy.kubeconfig拷贝到node节点
scp bootstrap.kubeconfig kube-proxy.kubeconfig node01:/opt/kubernetes/cfg
scp bootstrap.kubeconfig kube-proxy.kubeconfig node02:/opt/kubernetes/cfg
#RBAC授权,使用户 kubelet-bootstrap 能够有权限发起 CSR 请求
kubectl create clusterrolebinding kubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap
#CSR 请求就是kublet向APIserver请求证书的操作
#若执行失败,可先给kubectl绑定默认cluster-admin管理员集群角色,授权集群操作权限
kubectl create clusterrolebinding cluster-system-anonymous --clusterrole=cluster-admin --user=system:anonymous
----------------------- 虚线内是注释 -------------------------------------------------
kubelet 采用 TLS Bootstrapping 机制,自动完成到 kube-apiserver 的注册,在