零基础搭建k8s集群(二)- 依赖软件安装

关联文章列表

安装 Docker

# 安装依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 卸载旧版本的软件信息
sudo yum remove docker \
                docker-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-engine

# 添加 docker 官方镜像
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

# 更新缓存
yum makecache

# 安装 docker 【请先规划好你需要安装的  k8s 的版本,根据依赖关系安装对应的版本,比如我下面就指定了版本安装】
# 安装最新版本的命令
yum install -y docker-ce docker-ce-cli containerd.io

# 此处因为我的集群版本需要,我安装成指定版本吧
yum remove -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin
yum install -y docker-ce-19.03.15 docker-ce-cli-19.03.15 containerd.io

# 调整 docker 的配置更新存储的路径
sudo mkdir -p /data/docker
sudo touch /etc/docker/daemon.json

## 在 /etc/docker/daemon.json 中放置如下内容(不要把开始和结束的两行放进去了哦)
###### 内容开始 ########
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "50m",
    "max-file": "3"
  },
  "data-root": "/data/docker",
  "exec-opts": ["native.cgroupdriver=systemd"],
  "registry-mirrors": [
    "https://docker.mirrors.ustc.edu.cn",
    "http://hub-mirror.c.163.com",
    "https://registry.docker-cn.com"
  ]
}
###### 内容结束 ########

#立即启动Docker,并设置为开机自动启动
systemctl enable docker --now

# --------------------------------------------------------
# 其他单独命令可以参考如下 ↓↓↓
# --------------------------------------------------------
# 启动 docker 服务
systemctl start docker
# reload 服务
systemctl daemon-reload
# 重启
 docker 服务; 碰到一些配置调整后,最好都执行 restart
systemctl restart docker
# 设置 docker 开机启动
systemctl enable docker
# 查看 docker 服务状态
systemctl status docker

# 验证 docker 是否成功安装
docker run hello-world

安装 kubeadm 、kubectl 、kebelet

# 添加Kubernetes的yum源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

# 安装kubeadm、kubelet和kubectl【请根据你需要的版本指定安装,此处命令是安装最新的,可以往后看指定版本的命令】
sudo yum install -y kubelet kubeadm kubectl

# 此处我安装指定的版本; 请根据您实际需要的版本进行安装
yum install -y kubelet-1.20.15  kubeadm-1.20.15 kubectl-1.20.15 --disableexcludes=kubernetes

# 处理 kubelete 的日志输出到特定的路径,不然默认会输出到 /var/log/messages
mkdir -p /etc/systemd/system/kubelet.service.d/
mkdir -p /data/logs/kubelet
mkdir -p /data/database/k8s/kubelet
rm -rf /var/lib/kubelet/
ln -snf /data/database/k8s/kubelet  /var/lib/kubelet

# 修改"/etc/sysconfig/kubelet"文件的内容
# cgroup-driver 使用systemd驱动
KUBELET_EXTRA_ARGS="--cgroup-driver=systemd --log-dir=/data/logs/kubelet"

systemctl daemon-reload
# 立即启动kubelet,并设置为开机自动启动
systemctl enable kubelet --now
# 如果你是重装 kubelet 的情况,建议你再使用 restart 进行重启
systemctl restart kubelet
# 使用下面命令查看运行状态 【特别注意:这个时候你会看到其实状态一直是 activating ,不断重启,没关系等后面步骤网络搭建好后就正常了】
systemctl status kubelet

安装 HAProxy

前置说明下,上一篇文章有提到准备的服务器情况,其实服务器是双网卡的,其中 192.168.3.x 是内网网段

my_middleware-dev_10.12.3.40   => 192.168.3.35
my_middleware-dev_10.12.3.41   => 192.168.3.34
my_middleware-dev_10.12.3.42   => 192.168.3.33
sudo yum install -y epel-release
sudo yum install -y haproxy

# 编辑 HAProxy 配置文件 /etc/haproxy/haproxy.cfg
sudo vim /etc/haproxy/haproxy.cfg

# 在文件中添加以下内容来配置 Kubernetes API 服务器的负载均衡。请根据您的实际情况修改 IP 地址和端口
# 将 LOAD_BALANCER_PORT 替换为您希望用于负载均衡器的端口,通常为 6443。
###### 内容开始 #######
#---------------------------------------------------------------------
# k8s api server 的负载负载
#---------------------------------------------------------------------
defaults kubernetes-defaults
    mode tcp
    log global
    timeout connect 5s
    timeout client  30s
    timeout server  30s
    option tcp-check

frontend kubernetes-frontend
    bind *:LOAD_BALANCER_PORT
    mode tcp
    option tcplog
    default_backend kubernetes-backend

backend kubernetes-backend
    balance roundrobin
    server k8sdev003 192.168.3.33:6443 check inter 10s fall 3 rise 2
    server k8sdev002 192.168.3.34:6443 check inter 10s fall 3 rise 2
    server k8sdev001 192.168.3.35:6443 check inter 10s fall 3 rise 2
    #server master1 10.12.3.40:6443 check inter 10s fall 3 rise 2
    #server master2 10.12.3.41:6443 check inter 10s fall 3 rise 2
    #server master3 10.12.3.42:6443 check inter 10s fall 3 rise 2
###### 内容结束 #######

# 启用并启动 HAProxy 服务
sudo systemctl enable haproxy
sudo systemctl start haproxy

# 检查 HAProxy 服务状态以确保它正在正常运行
sudo systemctl status haproxy

安装 keepalive 使用 VIP 管理 HAProxy

# 安装 Keepalived
sudo yum install keepalived
# 创建 Keepalived 配置文件。使用文本编辑器打开 /etc/keepalived/keepalived.conf 文件
sudo vim /etc/keepalived/keepalived.conf
# 在文件中添加以下内容来配置 Keepalived。请根据您的实际情况修改 IP 地址、接口名称、优先级等
# 将 ${YOUR_NETWORK_INTERFACE} 替换为您的网络接口名称(如 eth0)
# 将 ${YOUR_SECRET_PASSWORD} 替换为您自定义的密码,用于 Keepalived 节点之间的通信
# 将 ${YOUR_VIRTUAL_IP} 替换为您希望使用的虚拟 IP 地址
# 对于其他节点,您需要使用相同的配置,但将 state 设置为 BACKUP,并为 priority 指定一个较低的值(例如,100),以确保主节点具有更高的优先级。
# killall -0 haproxy 是一个命令,用于检查是否有名为 haproxy 的进程在运行
### 内容开始 ###
vrrp_script chk_haproxy {
    script "killall -0 haproxy"
    interval 2
    weight 2
}

vrrp_instance VI_1 {
    state MASTER
    interface ${YOUR_NETWORK_INTERFACE}
    virtual_router_id 51
    priority 101
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass ${YOUR_SECRET_PASSWORD}
    }
    virtual_ipaddress {
        ${YOUR_VIRTUAL_IP}
    }
    track_script {
        chk_haproxy
    }
}
### 内容结束

# 启用并启动 Keepalived 服务
sudo systemctl enable keepalived
sudo systemctl start keepalived
# 检查 Keepalived 服务状态以确保它正在正常运行
sudo systemctl status keepalived

🔑 此处给出我其中一台机器的配置内容以供参考:我的虚IP是 192.168.3.242,该 IP 会在后面搭建集群起到关键作用!

global_defs {
   router_id LVS_DEVEL
}

vrrp_script chk_haproxy {
    script "killall -0 haproxy"
    interval 2
    weight -20
}

vrrp_instance VI_1 {
    state MASTER
    interface eth0
    virtual_router_id 58
    priority 101
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass ethenoscar
    }
    virtual_ipaddress {
        192.168.3.242/24
    }
    track_script {
        chk_haproxy
    }
}

异常的应急重置手段

💊 搭建过程中如果碰到一些组件异常的问题,请注意可以通过如下应急手段来卸载对应的软件后重新来

# 卸载所有相关的软件先
sudo yum remove -y kubeadm-1.20.15-0 kubelet-1.20.15-0 kubectl-1.20.15-0 --disableexcludes=kubernetes docker-ce-19.03.15 docker-ce-cli-19.03.15 containerd.io
rm -rf rm /etc/systemd/system/kubelet.service.d/10-kubeadm.conf 
rm -rf /data/docker/*
rm -rf  /etc/yum.repos.d/kubernetes.repo
rm -rf /etc/yum.repos.d/docker-ce.repo 
yum makecache
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不认输的猴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值