二进制安装k8s-1.20.4之生成k8s组件配置文件
一丶下载安装包
下载地址:https://github.com/kubernetes/kubernetes/tree/master/CHANGELOG
wget https://dl.k8s.io/v1.20.11/kubernetes-server-linux-amd64.tar.gz
解压并做软链接
cd /usr/local/src
tar -zxf kubernetes-server-linux-amd64.tar.gz
cd kubernetes/server/bin
mkdir -p /data/app/kubernetes/bin
cp kube-apiserver /data/app/kubernetes/bin/
cp kube-controller-manager /data/app/kubernetes/bin/
cp kube-scheduler /data/app/kubernetes/bin/
cp kubelet /data/app/kubernetes/bin/
cp kube-proxy /data/app/kubernetes/bin/
cp kubectl /data/app/kubernetes/bin/
ln -sf /data/app/kubernetes/bin/kube-apiserver /usr/local/bin/
ln -sf /data/app/kubernetes/bin/kube-controller-manager /usr/local/bin/
ln -sf /data/app/kubernetes/bin/kube-scheduler /usr/local/bin/
ln -sf /data/app/kubernetes/bin/kubelet /usr/local/bin/
ln -sf /data/app/kubernetes/bin/kube-proxy /usr/local/bin/
ln -sf /data/app/kubernetes/bin/kubectl /usr/local/bin/
二丶生成配置文件
1、 生成kubelet的kubeconfig
1)创建kubelet配置脚本
cd /data/app/k8s-init
vim kubelet.sh
IFS=$'\n'
for line in `cat node.txt`; do
instance=`echo $line | awk '{print $1}'`
kubectl config set-cluster kubernetes-the-hard-way \
--certificate-authority=ca.pem \
--embed-certs=true \
--server=https://172.31.24.233:16443 \
--kubeconfig=${instance}.kubeconfig
kubectl config set-credentials system:node:${instance} \
--client-certificate=${instance}.pem \
--client-key=${instance}-key.pem \
--embed-certs=true \
--kubeconfig=${instance}.kubeconfig
kubectl config set-context default \
--cluster=kubernetes-the-hard-way \
--user=system:node:${instance} \
--kubeconfig=${instance}.kubeconfig
kubectl config use-context default --kubeconfig=${instance}.kubeconfig
done
2)执行脚本并验证
sh kubelet.sh
ll node*.kubeconfig
2、生成kube-proxy的kubeconfig
1)创建kubelet配置脚本
vim kube-proxy.sh
kubectl config set-cluster kubernetes-the-hard-way \ --certificate-authority=ca.pem \ --embed-certs=true \ --server=https://172.18.175.230:16443 \ --kubeconfig=kube-proxy.kubeconfig kubectl config set-credentials system:kube-proxy \ --client-certificate=kube-proxy.pem \ --client-key=kube-proxy-key.pem \ --embed-certs=true \ --kubeconfig=kube-proxy.kubeconfig kubectl config set-context default \ --cluster=kubernetes-the-hard-way \ --user=system:kube-proxy \ --kubeconfig=kube-proxy.kubeconfig kubectl config use-context default --kubeconfig=kube-proxy.kubeconfig
2)执行脚本并验证
sh kube-proxy.sh
ll kube-proxy*.kubeconfig
3、创建kue-controller-manager kubeconfig
1)创建kube-controllermanage配置脚本
vim kube-controllermanager.sh
kubectl config set-cluster kubernetes-the-hard-way \ --certificate-authority=ca.pem \ --embed-certs=true \ --server=https://127.0.0.1:6443 \ --kubeconfig=kube-controller-manager.kubeconfig kubectl config set-credentials system:kube-controller-manager \ --client-certificate=kube-controller-manager.pem \ --client-key=kube-controller-manager-key.pem \ --embed-certs=true \ --kubeconfig=kube-controller-manager.kubeconfig kubectl config set-context default \ --cluster=kubernetes-the-hard-way \ --user=system:kube-controller-manager \ --kubeconfig=kube-controller-manager.kubeconfig kubectl config use-context default --kubeconfig=kube-controller-manager.kubeconfig
2)执行脚本并验证
sh kube-controllermanager.sh
ll kube-controller-manager*.kubeconfig
4、生成kube-scheduler kubeconfig
1)创建kube-scheduler配置脚本
vim kube-scheduler.sh
kubectl config set-cluster kubernetes-the-hard-way \ --certificate-authority=ca.pem \ --embed-certs=true \ --server=https://127.0.0.1:6443 \ --kubeconfig=kube-scheduler.kubeconfig kubectl config set-credentials system:kube-scheduler \ --client-certificate=kube-scheduler.pem \ --client-key=kube-scheduler-key.pem \ --embed-certs=true \ --kubeconfig=kube-scheduler.kubeconfig kubectl config set-context default \ --cluster=kubernetes-the-hard-way \ --user=system:kube-scheduler \ --kubeconfig=kube-scheduler.kubeconfig kubectl config use-context default --kubeconfig=kube-scheduler.kubeconfig
2)执行脚本并验证
sh kube-scheduler.sh
ll kube-scheduler*.kubeconfig
5、生成admin的kubeconfig
1)创建admin配置脚本
vim admin.sh
kubectl config set-cluster kubernetes-the-hard-way \ --certificate-authority=ca.pem \ --embed-certs=true \ --server=https://127.0.0.1:6443 \ --kubeconfig=admin.kubeconfig kubectl config set-credentials admin \ --client-certificate=admin.pem \ --client-key=admin-key.pem \ --embed-certs=true \ --kubeconfig=admin.kubeconfig kubectl config set-context default \ --cluster=kubernetes-the-hard-way \ --user=admin \ --kubeconfig=admin.kubeconfig kubectl config use-context default --kubeconfig=admin.kubeconfig
2)执行脚本并验证
sh admin.sh
ll admin.kubeconfig
6、创建通信加密文件
1)创建Secret加密配置脚本
vim encryption-config.sh
cat > encryption-config.yaml <<EOF kind: EncryptionConfig apiVersion: v1 resources: - resources: - secrets providers: - aescbc: keys: - name: key1 secret: $(head -c 32 /dev/urandom | base64) - identity: {} EOF
2)执行脚本并验证
sh encryption-config.sh
7、拷贝kubeconfig到集群节点
1)创建scp脚本
vim kubeconfig-scp.sh
IFS=$'\n' for line in k8s-worker01; do rsync -avpz ${line}.kubeconfig kube-proxy.kubeconfig root@${line}:/root/ done for instance in k8s-master01 k8s-master02 k8s-master03; do rsync -avpz admin.kubeconfig kube-controller-manager.kubeconfig kube-scheduler.kubeconfig root@${instance}:/root/ rsync -avpz encryption-config.yaml root@${instance}:/root/ done
2)执行脚本
sh kubeconfig-scp.sh
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律