k8s二进制安装

一、二进制搭建k8s v1.20

节点 ip 安装的软件
master01 192.168.2.11 kube-apiserver、controller-manager、scheduler、etcd
node01 192.168.2.12 kubelet、kube-proxy、docker
node02 192.168.2.13 kubelet、kube-proxy、docker
etcd01 192.168.2.11
etcd02 192.168.2.12
etcd03 192.168.2.13
master02 192.168.2.14
负载均衡01 192.168.2.16
负载均衡02 192.168.2.17

vip:192.168.2.100

 1.1 操作系统初始化配置(master:192.168.2.11,node01:192.168.2.12,node02:192.168.2.13)

#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X

#关闭selinux
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config

#关闭swap
swapoff -a
sed -ri 's/.*swap.*/#&/' /etc/fstab 

#根据规划设置主机名
hostnamectl set-hostname master01
hostnamectl set-hostname node01
hostnamectl set-hostname node02

#在master01   node01 node02都添加hosts
cat >> /etc/hosts << EOF
192.168.10.80 master01
192.168.10.20 master02
192.168.10.18 node01
192.168.10.19 node02
EOF

#调整内核参数
cat > /etc/sysctl.d/k8s.conf << EOF
#开启网桥模式,可将网桥的流量传递给iptables链
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
#关闭ipv6协议
net.ipv6.conf.all.disable_ipv6=1
net.ipv4.ip_forward=1
EOF

sysctl --system

#时间同步
yum install ntpdate -y
ntpdate time.windows.com

1.2 node 节点部署docker引擎(192.168.2.12、192.168.2.13)

//所有 node 节点部署docker引擎
yum install -y yum-utils device-mapper-persistent-data lvm2 
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
yum install -y docker-ce docker-ce-cli containerd.io

systemctl start docker.service
systemctl enable docker.service 

1.3 生成Etcd证书

cd /opt/
[root@master01 opt]#ls
cfssl  cfssl-certinfo  cfssljson
[root@master01 opt]# mv cfssl* /usr/local/bin/
[root@master01 opt]#
[root@master01 opt]#chmod +x /usr/local/bin/cfssl*
[root@master01 opt]#ll /usr/local/bin/
总用量 18808
-rwxr-xr-x. 1 root root 10376657 2月  17 2021 cfssl
-rwxr-xr-x. 1 root root  6595195 2月  17 2021 cfssl-certinfo
-rwxr-xr-x. 1 root root  2277873 2月  17 2021 cfssljson

mkdir /opt/k8s
cd /opt/k8s/

#上传 etcd-cert.sh 和 etcd.sh 到 /opt/k8s/ 目录中
chmod +x etcd-cert.sh etcd.sh

#创建用于生成CA证书、etcd 服务器证书以及私钥的目录
mkdir /opt/k8s/etcd-cert
mv etcd-cert.sh etcd-cert/
cd /opt/k8s/etcd-cert/
./etcd-cert.sh            #生成CA证书、etcd 服务器证书以及私钥

ls
ca-config.json  ca-csr.json  ca.pem        server.csr       server-key.pem
ca.csr          ca-key.pem   etcd-cert.sh  server-csr.json  server.pem

1.4 在master节点上安装etcd

cd /opt/k8s/
tar zxvf etcd-v3.4.9-linux-amd64.tar.gz
ls etcd-v3.4.9-linux-amd64
Documentation  etcd  etcdctl  README-etcdctl.md  README.md  READMEv2-etcdctl.md
------------------------------------------------------------------------------------------
etcd就是etcd 服务的启动命令,后面可跟各种启动参数
etcdctl主要为etcd 服务提供了命令行操作
------------------------------------------------------------------------------------------

#创建用于存放 etcd 配置文件,命令文件,证书的目录
mkdir -p /opt/etcd/{cfg,bin,ssl}

cd /opt/k8s/etcd-v3.4.9-linux-amd64/
mv etcd etcdctl /opt/etcd/bin/
cp /opt/k8s/etcd-cert/*.pem /opt/etcd/ssl/

cd /opt/k8s/
./etcd.sh etcd01 192.168.10.80 etcd02=https://192.168.10.18:2380,etcd03=https://192.168.10.19:2380
#进入卡住状态等待其他节点加入,这里需要三台etcd服务同时启动,如果只启动其中一台后,服务会卡在那里,直到集群中所有etcd节点都已启动,可忽略这个情况

#可另外打开一个窗口查看etcd进程是否正常
ps -ef | grep etcd

1.5 在两个node节点上安装etcd

#把etcd相关证书文件、命令文件和服务管理文件全部拷贝到另外两个etcd集群节点
scp -r /opt/etcd/ root@192.168.10.18:/opt/
scp -r /opt/etcd/ root@192.168.10.19:/opt/
scp /usr/lib/systemd/system/etcd.service root@192.168.10.18:/usr/lib/systemd/system/
scp /usr/lib/systemd/system/etcd.service root&

### 安装 Kubernetes 的准备工作 在 Ubuntu 上以二进制形式安装 Kubernetes 需要完成一系列操作,包括下载必要的软件包、配置 Etcd 服务以及调整集群控制器管理器设置等。以下是具体的操作说明。 --- #### 下载 Kubernetes 软件包 首先需要从官方源下载 Kubernetes 的二进制文件。可以使用 `wget` 命令来获取指定版本的压缩包: ```bash wget https://dl.k8s.io/v1.30.2/kubernetes-server-linux-amd64.tar.gz ``` 此命令会将 Kubernetes v1.30.2 版本的服务器端组件下载到当前目录中[^1]。 解压并移动相关文件至适当位置: ```bash tar -xzvf kubernetes-server-linux-amd64.tar.gz sudo cp kubernetes/server/bin/* /usr/local/bin/ ``` 上述步骤完成了 Kubernetes 主程序及其工具集的部署。 --- #### 注册 Etcd 服务 Etcd 是 Kubernetes 中用于存储集群状态的核心数据库。为了确保其正常运行,在系统服务管理器中定义 Etcd 的启动脚本至关重要。 创建 `/usr/lib/systemd/system/etcd.service` 文件并将以下内容写入其中: ```ini [Unit] Description=Etcd Service Documentation=https://coreos.com/etcd/docs/latest/ After=network.target [Service] Type=notify ExecStart=/usr/local/bin/etcd --config-file=/etc/etcd/etcd.conf Restart=on-failure RestartSec=10 LimitNOFILE=65536 [Install] WantedBy=multi-user.target Alias=etcd3.service ``` 随后执行如下命令使 Etcd 服务生效: ```bash systemctl daemon-reload systemctl enable --now etcd.service systemctl status etcd.service ``` 这些指令分别刷新 systemd 配置缓存、启用 Etcd 并立即启动它,最后检查其运行状况[^2]。 --- #### 修改 Kube-Controller-Manager 设置 为了让证书签发具备更长的有效期(例如设定为 100 年),需修改 kube-controller-manager 的参数配置。编辑位于 `/usr/lib/systemd/system/kube-controller-manager.service` 的单元文件,在 `[Service]` 段落中的合适位置加入选项 `--cluster-signing-duration=876000h0m0s \` ,之后保存退出。 更新后的部分可能看起来像这样: ```ini ... [Service] Environment="KUBECONFIG=/etc/kubernetes/controller-manager.conf" ExecStart= ExecStart=/usr/local/bin/kube-controller-manager \ ... --cluster-signing-duration=876000h0m0s \ ... Restart=always ... ``` 完成后重新加载守护进程并重启该服务以应用更改: ```bash systemctl daemon-reload systemctl restart kube-controller-manager ``` 尽管理论上设置了超长时间,实际效果取决于其他因素如 CA 寿命等约束条件[^3]。 --- ### 总结 以上流程涵盖了从基础环境搭建到高级功能定制的关键环节。通过遵循上述指导,可以在基于 Ubuntu 的环境中成功实施 Kubernetes 的二进制安装过程。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值