【K8s】【部署】集群部署

server/2024/12/2 22:51:33/

1 主机/服务规划

主机IP主机名节点功能类型服务分布
192.168.199.20k8s.master.vip vip虚拟IP
192.168.199.21k8s01k8s-MasterKeepalived、HAProxy、Docker
192.168.199.22k8s02k8s-MasterKeepalived、HAProxy、Docker
192.168.199.23k8s03k8s-NodeDocker
192.168.199.24k8s04k8s-NodeDocker
192.168.199.25k8s05k8s-NodeDocker

2 主机初始化

参考https://blog.csdn.net/lilinxi001/article/details/140184722

2.1 配置主机名

hostnamectl set-hostname [主机名]

2.2 配置/etc/hosts

vi /etc/hosts
#添加
192.168.199.20 k8s.master.vip vip
192.168.199.21 k8s01
192.168.199.22 k8s02
192.168.199.23 k8s03
192.168.199.24 k8s04
192.168.199.25 k8s05

2.3 配置桥接的IPv4传递到iptables

cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOFsysctl --system  #执行生效

2.4 部署时间同步服务

yum install ntpdate -y
ntpdate time.windows.com

3 在两台Master节点部署keeplived,即k8s01、k8s02

3.1 keepalived安装

yum -y install conntrack-tools 
yum -y install libseccomp
yum -y install libtool-ltdl
yum -y install keepalived

3.2 k8s01配置

vi keepalived.conf
#替换
! Configuration File for keepalivedglobal_defs {router_id k8s
}vrrp_script check_haproxy {script "killall -0 haproxy"interval 3weight -2fall 10rise 2
}vrrp_instance VI_1 {state MASTERinterface ens33   #根据实际网卡名配置virtual_router_id 51priority 250advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.199.20}track_script {check_haproxy}
}

3.3 k8s01配置

vi keepalived.conf
#替换
! Configuration File for keepalivedglobal_defs {router_id k8s
}vrrp_script check_haproxy {script "killall -0 haproxy"interval 3weight -2fall 10rise 2
}vrrp_instance VI_1 {state BACKUPinterface ens33virtual_router_id 51priority 250advert_int 1authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.199.20}track_script {check_haproxy}
}

4 在两台Master节点部署HAProxy,即k8s01、k8s02

yum install -y haproxy

4.1 haproxy配置

vi /etc/haproxy/haproxy.cfg
#替换
#---------------------------------------------------------------------
# Example configuration for a possible web application.  See the
# full configuration options online.
#
#   http://haproxy.1wt.eu/download/1.4/doc/configuration.txt
#
#---------------------------------------------------------------------#---------------------------------------------------------------------
# Global settings
#---------------------------------------------------------------------
global# to have these messages end up in /var/log/haproxy.log you will# need to:## 1) configure syslog to accept network log events.  This is done#    by adding the '-r' option to the SYSLOGD_OPTIONS in#    /etc/sysconfig/syslog## 2) configure local2 events to go to the /var/log/haproxy.log#   file. A line like the following can be added to#   /etc/sysconfig/syslog##    local2.*                       /var/log/haproxy.log#log         127.0.0.1 local2chroot      /var/lib/haproxypidfile     /var/run/haproxy.pidmaxconn     4000user        haproxygroup       haproxydaemon# turn on stats unix socketstats socket /var/lib/haproxy/stats#---------------------------------------------------------------------
# common defaults that all the 'listen' and 'backend' sections will
# use if not designated in their block
#---------------------------------------------------------------------
defaultsmode                    httplog                     globaloption                  httplogoption                  dontlognulloption http-server-closeoption forwardfor       except 127.0.0.0/8option                  redispatchretries                 3timeout http-request    10stimeout queue           1mtimeout connect         10stimeout client          1mtimeout server          1mtimeout http-keep-alive 10stimeout check           10smaxconn                 3000#---------------------------------------------------------------------
# kubernetes apiserver frontend which proxys to the backends
#---------------------------------------------------------------------
frontend  kubernetes-apiservermode                 tcpbind                 *:16443option               tcplogdefault_backend      kubernetes-apiserver#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
backend kubernetes-apiservermode        tcpbalance     roundrobinserver k8s01 192.168.199.21:6443  checkserver k8s02 192.168.199.22:6443  checklisten statsbind          *:1080stats auth    admin:awesomePasswordstats refresh 5sstats realm   HAProxy\ Statisticsstats uri     /admin?stats

5 部署Docker、kubeadm、kubelet

5.1 安装Docker

yum -y install wgetwget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo
#此处docker版本可以根据个人情况修改
yum install -y docker-ce-19.03.0 docker-ce-cli-19.03.0
systemctl enable docker && systemctl start docker
#修改仓库地址
vi /etc/docker/daemon.json 
#替换
{
"exec-opts": ["native.cgroupdriver=systemd"],
"registry-mirrors": ["https://5w5kf152.mirror.aliyuncs.com"]
}

5.2 kubeadm,kubelet 和 kubectl

vi /etc/yum.repos.d/kubernetes.repo
#添加
[Kubernetes]
name=kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
 yum install -y kubelet-1.18.0 kubeadm-1.18.0 kubectl-1.18.0systemctl enable kubelet

kubernetes_Master__k8s01_254">5.3 部署kubernetes Master 即k8s01执行

kubeadm in it \
--apiserver-advertise-address=192.168.199.21 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.17.0 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16

http://www.ppmy.cn/server/146860.html

相关文章

Z2400039基于Java-+ SpringBoot + vue 企业信息管理系统的设计与实现(源码 配置 PPT 文档 分享)

企业信息管理系统 1.项目描述2.项目结构后端&#xff08;Spring Boot&#xff09;前端&#xff08;Vue.js Element UI&#xff09; 2. 功能实现登录页首页系统管理岗位管理部门管理 3. 部署和运行注意事项 4.界面展示5.源码获取 1.项目描述 基于你的描述&#xff0c;这个项目…

buuctf-[SUCTF 2019]EasySQL 1解题记录

把你的旗帜给我&#xff0c;我会告诉你这面旗帜是对的。 堆叠注入查询数据库 1; show databases; ​ 查询表名 1; show tables; 获取flag 1;set sql_modepipes_as_concat;select 1

在WSL 2 (Ubuntu 22.04)安装Docker Ce 启动错误解决

查看WSL版本 在 Windows 命令提示符&#xff08;CMD&#xff09;或 PowerShell 中&#xff0c;你可以使用以下命令来查看已安装的 WSL 发行版及其版本信息&#xff1a; wsl -l -v(base) PS C:\Users\Lenovo> wsl -l -vNAME STATE VERSION * Ubuntu-2…

android 安全sdk相关

前述 在网上有看到许多android安全sdk相关的内容&#xff0c;有重复的也有比较新鲜的内容&#xff0c;这里做一个整体的合集&#xff0c;以及后续又看到一些比较新的东西会一起放在这里。 android内sdk目前可以分为以下几个部分&#xff08;有一些部分可能会存在一些重合&#…

02-Linux系统权限维持

02-Linux系统权限维持 一 创建账号 1 在/etc/passwd中创建root的特权用户 /etc/passwd中数据的格式 账号:密码:uid:gid:描述:家目录:shell解释器&#xff0c;我们可以在/etc/passwd文件中添加一个test账号&#xff0c;密码为password123&#xff08;密文advwtv/9yU5yQ&#…

远程调用 rpc 、 open feign

在学习黑马 springcloud 视频的时候&#xff0c;看到 open feign 使用&#xff0c; 就是 http 封装。 spring框架三部曲&#xff0c;导入依赖&#xff0c;加配置&#xff0c;使用api。

[DL]深度学习_扩散模型正弦时间编码

1 扩散模型时间步嵌入 1.1 时间步正弦编码 在扩散模型按时间步 t 进行加噪去噪过程时&#xff0c;需要包括反映噪声水平的时间步长 t 作为噪声预测器的额外输入。但是最初与图像配套的时间步 t 是数字&#xff0c;需要将代表时间步 t 的数字编码为向量嵌入。嵌入时间向量的宽…

Qt MinGW环境下使用CEF

环境 Clion &#xff1a;2019.3.6 Qt &#xff1a;5.12.12&#xff08;MinGW 7.3.0&#xff09; CEF&#xff1a;cef_binary_87.1.14ga29e9a3chromium-87.0.4280.141_windows32 编译libcef_dll_wrapper 修改cmake 文件 修改根目录下的CMakeLists.txt # 修改cmake 版本 c…