Kubernetes二进制部署

在这里插入图片描述

Master

在这里插入图片描述在这里插入图片描述

//生成ETCD证书

在这里插入图片描述

修改etcd-cert.sh 配置文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

//ETCD 二进制包

在这里插入图片描述

//配置文件,命令文件,证书拷贝

在这里插入图片描述

//进入卡住状态等待其他节点加入

执行 ./etcd.sh etcd01 192.168.150.103 etcd02=https://192.168.150.104:2380,etcd03=https://192.168.150.105:2380

在这里插入图片描述

另开一个master终端会发现etcd进程已经开启

在这里插入图片描述

//拷贝证书去其他节点

scp -r /opt/etcd/ root@192.168.150.104:/opt/
scp -r /opt/etcd/ root@192.168.150.105:/opt/
//启动脚本拷贝其他节点
scp /usr/lib/systemd/system/etcd.service root@192.168.150.104:/usr/lib/systemd/system/
scp /usr/lib/systemd/system/etcd.service root@192.168.150.105:/usr/lib/systemd/system/
在这里插入图片描述

node01

[root@node-01 ~]# vim /opt/etcd/cfg/etcd

#[Member]
ETCD_NAME="etcd02"
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="https://192.168.80.50:2380"
ETCD_LISTEN_CLIENT_URLS="https://192.168.80.50:2379"

#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://192.168.80.50:2380"
ETCD_ADVERTISE_CLIENT_URLS="https://192.168.80.50:2379"
ETCD_INITIAL_CLUSTER="etcd01=https://192.168.80.40:2380,etcd02=https://192.168.80.50:2380,etcd03=https://192.168.80.60:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"

//启动etcd
[root@node-01 ~]# systemctl start etcd
[root@node-01 ~]# systemctl status etcd
[root@node-01 ~]# systemctl enable etcd.service

在这里插入图片描述

//启动etcd

在这里插入图片描述
在这里插入图片描述

node02

于node01操作一致。
在这里插入图片描述

//检查集群状态(Master上操作)

在这里插入图片描述

//切换到etcd3版本进行查看集群节点状态和成员列表

在这里插入图片描述
注意查看玩换回v2版本 export ETCDCTL_API=2

在所有node节点部署Docker引擎

目前 Docker 只能支持 64 位系统。

systemctl stop firewalld.service
setenforce 0

#安装依赖包
yum install -y yum-utils device-mapper-persistent-data lvm2 
--------------------------------------------------------------------------------------------
yum-utils:提供了 yum-config-manager 工具。
device mapper: 是Linux内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构。
device mapper存储驱动程序需要 device-mapper-persistent-data 和 lvm2。
--------------------------------------------------------------------------------------------

#设置阿里云镜像源
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 

#安装 Docker-CE并设置为开机自动启动
yum install -y docker-ce

systemctl start docker.service
systemctl enable docker.service 

#查看 docker 版本信息
docker version

flannel网络配置Master操作

cd /opt/etcd/ssl/

/opt/etcd/bin/etcdctl \
--ca-file=ca.pem \
--cert-file=server.pem \
--key-file=server-key.pem \
--endpoints="https://192.168.150.103:2379,https://192.168.150.104:2379,https://192.168.150.105:2379" \
set /coreos.com/network/config '{ "Network": "172.17.0.0/16", "Backend": {"Type": "vxlan"}}'


//查看写入的信息
etcdctl \
--ca-file=ca.pem \
--cert-file=server.pem \
--key-file=server-key.pem \
--endpoints="https://192.168.150.103:2379,https://192.168.150.104:2379,https://192.168.150.105:2379" \
get /coreos.com/network/config

{ "Network": "172.17.0.0/16", "Backend": {"Type": "vxlan"}}

在这里插入图片描述

node上操作

拷贝(flannel.sh flannel-v0.10.0-linux-amd64.tar.gz)到所有node节点(只需要部署在node节点即可)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

//配置docker连接flannel

vim /usr/lib/systemd/system/docker.service
在这里插入图片描述
在这里插入图片描述

完成后node节点使用docker虚拟机互ping

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

部署master组件

//在master上操作,api-server生成证书

在这里插入图片描述

//生成k8s证书

在这里插入图片描述

[root@master k8s-cert]# vim k8s-cert.sh 		//修改相关IP
[root@master k8s-cert]# chmod +x k8s-cert.sh 
[root@master k8s-cert]# ./k8s-cert.sh 
[root@master k8s-cert]# ls *pem
admin-key.pem  admin.pem  apiserver-key.pem  apiserver.pem  ca-key.pem  ca.pem  kube-proxy-key.pem  kube-proxy.pem
[root@master k8s-cert]# cp ca*pem apiserver*pem /opt/kubernetes/ssl/ 
[root@master k8s-cert]# cd ..

//解压kubernetes压缩包

[root@master k8s]# rz -E(kubernetes-server-linux-amd64.tar.gz)
[root@master k8s]# tar zxvf kubernetes-server-linux-amd64.tar.gz
[root@master k8s]# cd kubernetes/server/bin/

//复制关键命令文件

在这里插入图片描述

//二进制文件,token,证书都准备好,开启apiserver

//使用 head -c 16 /dev/urandom | od -An -t x | tr -d ’ ’ 可以随机生成序列号
[root@master k8s]# vim /opt/kubernetes/cfg/token.csv
0fb61c46f8991b718eb38d27b605b008,kubelet-bootstrap,10001,“system:kubelet-bootstrap”

在这里插入图片描述

//启动scheduler服务

在这里插入图片描述

//启动controller-manager

cd /opt/k8s/
./controller-manager.sh 127.0.0.1
在这里插入图片描述

部署 node 组件

##### 在 master01 节点上操作 #####
//把 kubelet、kube-proxy 拷贝到 node 节点
cd /opt/k8s/kubernetes/server/bin
scp kubelet kube-proxy root@192.168.80.11:/opt/kubernetes/bin/
scp kubelet kube-proxy root@192.168.80.12:/opt/kubernetes/bin/


##### 在 node01 节点上操作 #####
//上传 node.zip 到 /opt 目录中,解压 node.zip 压缩包,获得kubelet.sh、proxy.sh
cd /opt/
unzip node.zip


##### 在 master01 节点上操作 #####
//创建用于生成kubelet的配置文件的目录
mkdir /opt/k8s/kubeconfig

//上传 kubeconfig.sh 文件到 /opt/k8s/kubeconfig 目录中
#kubeconfig.sh 文件包含集群参数(CA 证书、API Server 地址),客户端参数(上面生成的证书和私钥),集群 context 上下文参数(集群名称、用户名)。Kubenetes 组件(如 kubelet、kube-proxy)通过启动时指定不同的 kubeconfig 文件可以切换到不同的集群,连接到 apiserver。
cd /opt/k8s/kubeconfig
chmod +x kubeconfig.sh

//生成kubelet的配置文件
cd /opt/k8s/kubeconfig
./kubeconfig.sh 192.168.80.10 /opt/k8s/k8s-cert/

ls
bootstrap.kubeconfig  kubeconfig.sh  kube-proxy.kubeconfig

//把配置文件 bootstrap.kubeconfig、kube-proxy.kubeconfig 拷贝到 node 节点
cd /opt/k8s/kubeconfig
scp bootstrap.kubeconfig kube-proxy.kubeconfig root@192.168.80.11:/opt/kubernetes/cfg/
scp bootstrap.kubeconfig kube-proxy.kubeconfig root@192.168.80.12:/opt/kubernetes/cfg/

//RBAC授权,将预设用户 kubelet-bootstrap 与内置的 ClusterRole system:node-bootstrapper 绑定到一起,使其能够发起 CSR 请求
kubectl create clusterrolebinding kubelet-bootstrap --clusterrole=system:node-bootstrapper --user=kubelet-bootstrap

在这里插入图片描述

##### 在 node01 节点上操作 #####
//自动生成了证书和 kubelet.kubeconfig 文件
ls /opt/kubernetes/cfg/kubelet.kubeconfig
ls /opt/kubernetes/ssl/

//加载 ip_vs 模块
for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done

//使用proxy.sh脚本启动proxy服务
cd /opt/
chmod +x proxy.sh
./proxy.sh 192.168.80.11

systemctl status kube-proxy.service

---------- node02 节点部署 ----------
##方法一:
//在 node01 节点上将 kubelet.sh、proxy.sh 文件拷贝到 node02 节点
cd /opt/
scp kubelet.sh proxy.sh root@192.168.80.12:/opt/

##### 在 node02 节点上操作 #####
//使用kubelet.sh脚本启动kubelet服务
cd /opt/
chmod +x kubelet.sh
./kubelet.sh 192.168.80.12

##### 在 master01 节点上操作 #####
//在 master01 节点上操作查看 CSR 请求
kubectl get csr
NAME                                                   AGE   REQUESTOR           CONDITION
node-csr-OaH9HpIKh6AKlfdjEKm4C6aJ0UT_1YxNaa70yEAxnsU   15s   kubelet-bootstrap   Pending

//通过 CSR 请求
kubectl certificate approve node-csr-OaH9HpIKh6AKlfdjEKm4C6aJ0UT_1YxNaa70yEAxnsU

kubectl get csr
NAME                                                   AGE   REQUESTOR           CONDITION
node-csr-OaH9HpIKh6AKlfdjEKm4C6aJ0UT_1YxNaa70yEAxnsU   2m   kubelet-bootstrap    Approved,Issued

//查看群集中的节点状态
kubectl get nodes
NAME            STATUS   ROLES    AGE    VERSION
192.168.80.11   Ready    
192.168.80.12   Ready    

//加载 ipvs 模块
for i in $(ls /usr/lib/modules/$(uname -r)/kernel/net/netfilter/ipvs|grep -o "^[^.]*");do echo $i; /sbin/modinfo -F filename $i >/dev/null 2>&1 && /sbin/modprobe $i;done

//使用proxy.sh脚本启动proxy服务
cd /opt/
chmod +x proxy.sh
./proxy.sh 192.168.80.12

systemctl status kube-proxy.service

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在ARM服务器上进行二进制部署Kubernetes(k8s)是一种将Kubernetes集群运行在ARM架构服务器上的方法。以下是在ARM服务器上进行Kubernetes二进制部署的步骤: 1. 硬件选择:选择一台支持ARM架构的服务器,并确保其满足Kubernetes的最低硬件要求,如内存、处理器等。 2. 操作系统选择:选择一个适配于ARM服务器的操作系统。例如,可以选择Linux发行版,如Ubuntu、Debian或Raspberry Pi OS。 3. 安装Docker:在ARM服务器上安装Docker作为容器运行时。Docker支持ARM架构,并且是Kubernetes的默认容器运行时。 4. 下载Kubernetes二进制文件:从Kubernetes官方GitHub仓库下载适用于ARM架构的Kubernetes二进制文件。确保下载与所使用的Kubernetes版本匹配的二进制文件。 5. 配置Master节点:为ARM服务器上的一个节点配置Kubernetes的Master节点。在Master节点上初始化Kubernetes集群,并启动相关组件,如kube-apiserver、kube-controller-manager和kube-scheduler。 6. 配置Worker节点:为ARM服务器上的其他节点配置Kubernetes的Worker节点。将这些节点加入到Kubernetes集群中,并在每个节点上启动kubelet和kube-proxy。 7. 配置网络插件:选择适用于ARM架构的网络插件,并根据其文档进行安装和配置。常见的网络插件有Flannel、Calico和Weave等。 8. 配置存储插件:如果需要在ARM服务器上使用持久性存储,可以选择适用于ARM架构的存储插件,并根据其文档进行安装和配置。常见的存储插件有Rook、Ceph和NFS等。 9. 验证集群:通过运行Kubernetes的验证测试,确保集群正常运行。测试可以包括部署Pod、服务发现、扩容和伸缩等。 10. 部署应用程序:使用kubectl命令部署您的应用程序到ARM服务器上的Kubernetes集群中。确保您的应用程序镜像适用于ARM架构。 通过以上步骤,您可以在ARM服务器上成功地进行Kubernetes二进制部署。请注意,ARM架构的服务器可能与x86架构的服务器有所不同,因此某些工具和插件可能需要特定的ARM架构版本或适配。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值