CentOS 7 安装 Kubernetes 1.28.2 集群

目录

一、部署流程

节点规划

二、部署过程

1. 环境准备

1.1 修改主机名

1.2 设置host映射

1.3 关闭防火墙

1.4 关闭交换分区

1.5 修改内核参数

1.6 启用IP转发

1.7 配置时间同步

1.8 配置ssh免密登录

2. 安装docker、cri-dockerd、kubeadm、kubelet、kubectl

2.1 安装docker

2.2 安装cri-dockerd

2.3 添加阿里云yum源

2.4 安装kubeadm、kubelet、kubectl

3. 部署kubernetes-master

3.1 初始化master节点

3.2 准备kubectl配置文件

3.3 安装网络插件(选用Pod网络插件)

3.4 node节点加入集群


一、部署流程

节点规划

IP地址

节点

192.168.20.32

master

192.168.20.33

node1

192.168.20.34

node2

二、部署过程

1. 环境准备

所有节点!!!

1.1 修改主机名

master节点:

[root@localhost ~]# hostnamectl set-hostname master
[root@localhost ~]# bash

node1节点:

[root@localhost ~]# hostnamectl set-hostname node1
[root@localhost ~]# bash

node2节点:

[root@localhost ~]# hostnamectl set-hostname node2
[root@localhost ~]# bash

1.2 设置host映射

[root@master ~]# vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.20.32 master

192.168.20.33 node1

192.168.20.34 node2

1.3 关闭防火墙

[root@ master ~]# setenforce 0

[root@ master ~]# systemctl disable firewalld

[root@ master ~]# systemctl stop firewalld

[root@ master ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

1.4 关闭交换分区

#临时关闭

[root@master ~]# swapoff -a

#永久关闭

[root@master ~]# echo vm.swappiness = 0 >> /etc/sysctl.conf

[root@master ~]# sysctl -p

### 安装 Kubernetes 1.28.2 on CentOS #### 准备工作 确保操作系统是最新的状态,并关闭防火墙和服务冲突项。 ```bash sudo yum update -y && sudo yum upgrade -y sudo swapoff -a sudo sed -i '/swap/d' /etc/fstab ``` 为了使内核参数适应Kubernetes的要求,设置必要的sysctl参数: ```bash cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 EOF sudo sysctl --system ``` #### 安装 Docker 和 CRI-Dockerd 安装Docker作为容器运行时工具,并配置CRI-Dockerd以便于与Kubernetes兼容[^2]。 ```bash # 添加docker-ce仓库并安装最新版docker-ce sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce docker-ce-cli containerd.io -y # 启动并启用docker服务 sudo systemctl start docker sudo systemctl enable docker # 下载cri-dockerd二进制文件并解压到指定位置 wget https://github.com/Mirantis/cri-dockerd/releases/download/v0.2.3/cri-dockerd-v0.2.3-linux-amd64.tar.gz tar zxvf cri-dockerd-v0.2.3-linux-amd64.tar.gz -C / rm -rf cri-dockerd-v0.2.3-linux-amd64.tar.gz # 创建cri-dockerd.service单元文件 cat <<EOF | sudo tee /usr/lib/systemd/system/cri-dockerd.service [Unit] Description=CRI interface for Docker application container runtime After=network-online.target firewalld.service Wants=docker.service [Service] Environment="PATH=/bin:/sbin" ExecStartPre=-/usr/bin/mkdir -p /var/run/cri-dockerd ExecStart=/usr/local/sbin/cri-dockerd \ --container-runtime-endpoint 'unix:///run/containerd/containerd.sock' Restart=always RestartSec=5 Delegate=yes KillMode=process OOMScoreAdjust=-999 [Install] WantedBy=multi-user.target EOF # 加入开机自启并启动cri-dockerd服务 sudo systemctl daemon-reload sudo systemctl enable cri-dockerd --now ``` #### 设置 Kubelet 使用 CRI-Dockerd 编辑`/etc/default/kubelet`来指明kubelet应该通过什么途径连接至CRI接口。 ```bash echo 'KUBELET_EXTRA_ARGS="--container-runtime remote --container-runtime-endpoint unix:///var/run/cri-dockerd.sock"' | sudo tee /etc/default/kubelet ``` #### 安装 Kubernetes 组件 (kubeadm, kubelet and kubectl) 添加官方的yum源用于获取最新的稳定版本软件包。 ```bash cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo [kubernetes] name=Kubernetes baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-\$basearch enabled=1 gpgcheck=1 repo_gpgcheck=1 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg exclude=kube* EOF # 安装所需的组件 sudo setenforce 0 sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes sudo systemctl enable --now kubelet ``` #### 初始化集群 Master 节点 使用预定义好的配置文件初始化master节点。这一步骤会创建一个单机或多机组成的控制平面实例。 ```bash # 复制默认配置模板供修改之用 cp /etc/kubernetes/kubeadm-config.yaml /root/kubeadm-config.yaml_$(date +%Y%m%d) # 编辑/root/kubeadm-config.yaml调整所需选项后执行如下命令完成初始化过程 sudo kubeadm init --config=/root/kubeadm-config.yaml --upload-certs ``` #### 配置kubectl访问权限 为了让当前用户能够管理新建立起来的cluster,在home目录下准备好相应的认证证书链接。 ```bash mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config ``` #### 安装 Pod 网络插件 Flannel 最后一步是为整个Cluster提供Pod间通信能力,这里选择了Flannel作为网络方案之一。 ```bash kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ``` 等待一段时间直到所有Node都变为Ready状态表示成功完成了全部准备工作。 ```bash watch kubectl get nodes ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值