首页 > 其他分享 >kubeadm方式部署集群

kubeadm方式部署集群

时间:2024-03-13 20:34:21浏览次数:25  
标签:bridge 部署 ip etc vs 集群 kubeadm kube net

kubeadm方式部署集群

一、准备环境

主机清单

主机名地址角色配置
kub-master10.12.153.72主节点2核4G
kub-node110.12.153.148工作节点2核4G
kub-node210.12.153.149工作节点2核4G

修改主机名

设置防火墙、selinux状态

主机名解析

cat >> /etc/hosts << EOF

10.12.153.72 kube-master

10.12.153.148 kube-node1

10.12.153.149 kube-node2

EOF

固定ip重启网卡

vim /etc/sysconfig/network-scripts/ifcfg-ens33

BOOTPRTOT=dhcp (动态)改为 static(静态)

IPADDR= IP地址

PREFIX=24 子网掩码

GATEWAY=网关

DNS1=114.114.114.114

DNS2=8.8.8.8

重启网络服务后生效

systemctl restart network

同步时间

ntpdate time.windows.com

关闭swap分区

swapoff -a

注释掉swap分区:

sed -i 's/.swap./#&/' /etc/fstab

free -m

二、获取镜像

可通过官方镜像源

三、安装docker

我这里是拉取了镜像的脚本直接部署的docker

四、配置kubeadm源

安装常用插件

1、配置kubeadm源,安装对应版本

1.安装依赖包及常用软件包
# yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git iproute lrzsz bash-completion tree bridge-utils unzip bind-utils gcc
​
2.安装对应版本
# yum install -y kubelet-1.22.0-0.x86_64 kubeadm-1.22.0-0.x86_64 kubectl-1.22.0-0.x86_64 
​

2、加载相关ipvs模块

cat <<EOF > /etc/modules-load.d/ipvs.conf 
ip_vs
ip_vs_lc
ip_vs_wlc
ip_vs_rr
ip_vs_wrr
ip_vs_lblc
ip_vs_lblcr
ip_vs_dh
ip_vs_sh
ip_vs_nq
ip_vs_sed
ip_vs_ftp
ip_vs_sh
nf_conntrack_ipv4
ip_tables
ip_set
xt_set
ipt_set
ipt_rpfilter
ipt_REJECT
ipip
EOF

3、配置转发相关参数

 cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables=1
net.bridge.bridge-nf-call-ip6tables=1
net.ipv4.ip_forward=1
net.ipv4.tcp_tw_recycle=0
vm.swappiness=0
vm.overcommit_memory=1
vm.panic_on_oom=0
fs.inotify.max_user_instances=8192
fs.inotify.max_user_watches=1048576
fs.file-max=52706963
fs.nr_open=52706963
net.ipv6.conf.all.disable_ipv6=1
net.netfilter.nf_conntrack_max=2310720
EOF

4、重启服务器加载新配置生效

sysctl --system

注意如果net.bridge.bridge-nf-call-iptables报错,加载br_netfilter模块

modprobe br_netfilter

modprobe ip_conntrack

sysctl -p /etc/sysctl.d/k8s.conf

5、查看是否加载成功

lsmod | grep ip_vs

五、配置启动kubelet

1、配置kubelet使用pause镜像

DOCKER_CGROUPS=docker info |grep 'Cgroup' | awk ' NR==1 {print $3}'

echo $DOCKER_CGROUPS

2、配置kubelet的资源限制

cat >/etc/sysconfig/kubelet<<EOF
KUBELET_EXTRA_ARGS="--cgroup-driver=$DOCKER_CGROUPS --pod-infra-container-image=k8s.gcr.io/pause:3.5"
EOF

六、配置master节点

1、运行初始化

kubeadm init --kubernetes-version=v1.22.0 --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=10.12.153.72

注: apiserver-advertise-address=10.12.153.72 ---master的ip地址。
--kubernetes-version=v1.22.0 --更具具体版本进行修改

保存kuken值,加入集群命令

如果忘记保存可以生成新的kuken值

2、配置使用kubectl

rm -rf $HOME/.kube

mkdir -p $HOME/.kube

cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

chown $(id -u):$(id -g) $HOME/.kube/config

2、将node加入到集群

在node节点上粘贴master生成的kuken值

3、查看组件节点状态

七、配置网络组件

1、执行yaml文件

在master上执行 curl -L https://docs.projectcalico.org/v3.22/manifests/calico.yaml -O

在执行 kubectl apply -f calico.yaml 下载网络插件

2、再次查看组件节点状态

kubectl get pod A

kubectl get nodes

标签:bridge,部署,ip,etc,vs,集群,kubeadm,kube,net
From: https://blog.csdn.net/weixin_48126010/article/details/136689312

相关文章

  • 【Azure Redis】部署在AKS中的应用连接Redis时候出现Unable to connect to Redis serv
    问题描述在AKSPod中连接AzureRedis服务,大概率出现连接不上的问题。大多数的错误为 RedisConnectionException:UnabletoconnecttoRedisserver:xxxxxxxxx.redis.cache.chinacloudapi.cn/52.xxx.xxx.xxx:6380,但是有时候的错误信息为: RedisConnectionException:Unable......
  • docker部署MySQL
    1做后台守护式mysql容器端口3308运行设置密码dockerrun-di--name=mysql-p3308:3306-eMYSQL_ROOT_PASSWORD=123456mysql:5.72做目录(配置文件和数据文件)和端口映射2.1创建文件夹mkdir/mysqlmkdir/mysql/conf.dmkdir/mysql/data/2.2书写配置文件vim/m......
  • docker部署redis
    1拉取最新redis镜像dockerpullredis2创建文件夹,配置redis文件mkdir/root/datavim/root/redis.conf#配置以下内容密码设定为123456bind0.0.0.0daemonizeNOprotected-modeyesrequirepass1234563映射并运行容器dockerrun-id-p6379:6379--namered......
  • Day40:安全开发-JavaEE应用&SpringBoot框架&JWT身份鉴权&打包部署JAR&WAR
    目录SpringBoot-身份鉴权-JWT技术SpringBoot-打包部署-JAR&WAR思维导图Java知识点功能:数据库操作,文件操作,序列化数据,身份验证,框架开发,第三方组件使用等.框架库:MyBatis,SpringMVC,SpringBoot,Shiro,Log4j,FastJson等技术:Servlet,Listen,Filter,Interceptor,JWT,AOP,反射机制待......
  • 生物分子体系结构预测开源模型RoseTTAFold All-Atom的conda环境部署及使用
    欢迎浏览我的CSND博客!Blockbuater_drug…点击进入文章目录前言一、RoseTTAFoldAll-Atom(RFAA)是什么?二、安装步骤1.安装mamba(非必须的,conda也可以)2.下载RoseTTAFold-All-Atom3.创建conda环境并安装4.安装SE3T5.准备cs-blast6.安装signalp67.下载序列和模板......
  • doris集群环境部署
    环境:OS:Centos7DB:doris2.1.1192.168.1.101febebroker192.168.1.103febebroker192.168.1.105febebroker 说明:doris2.0开始fe、be、brokser都是使用同一个安装包,解压后分别有fe、be、broker目录1.获取安装介质https://doris.apache.org/zh-CN/download/我这里下......
  • Docker部署运行kkFileView
     kkfileview的预览文件位于容器内/opt/kkFileView-4.1.0/filekkfileview的配置文件位于容器内/opt/kkFileView-4.1.0/config目录可能随着版本号变化,建议先运行之后进去看一下实际的目录(dockerexec-it容器idbash)之后把配置文件拷贝出来,当然如果已有配置文件直接运行映射目......
  • docker-compose安装minio集群
    一、docker-compose安装minio单机版直接使用docker安装单机版,可用于测试创建.env环境文件MINIO_PASSWORD=minio@123创建docker-compose.yml环境文件version:"3"services:minio:image:minio/miniocontainer_name:minioports:-9000:9000......
  • 节点加入k8s 集群的步骤
    使用kubeadm初始化集群成功后会返回join命令,里面包含token,discovery-token-ca-cert-hash等参数token的过期时间是24hcertrificate-key过期时间是2小时如果不记得,可以执行下面的命令获取1.如果没有超过24h,用下面的命令获取(主要查看是否过期)kubeadmtokenlist2.......
  • ElasticSearch高可用部署
    简单说明我们在部署ElasticSearch高可用集群时,要规划好集群的规模,每个节点的职责,规划好后续的水平扩展方案,再进行部署。核心概念Cluster:集群,由一个或多个Elasticsearch节点组成。Node:节点,组成Elasticsearch集群的服务单元,同一个集群内节点的名字不能重复。通常在一个节点......