首页 > 其他分享 >k8s安装部署集群

k8s安装部署集群

时间:2023-06-23 13:44:18浏览次数:42  
标签:kubernetes kubelet 部署 -- systemctl 集群 yum docker k8s

说明

这里准备了三台服务器,一台作为主节点(Master),两台作为子节点(Node)

每个步奏分为:

  • ALL = 所有服务器
  • Master = 主节点
  • Node = 子节点

详细步骤

查看ip(ALL)

ip addr

这里地址很重要,最好保存下来,后续会用到

配置HostName(ALL)

配置

sudo hostnamectl set-hostname master
sudo hostnamectl set-hostname node1
sudo hostnamectl set-hostname node2

这条命令会删除/etc/hostname文件中的主机名,然后替换为新的主机名。系统会更新/etc/hosts文件.

验证

hostname

IP与主机名映射

配置

vi /etc/hosts

 将上方获取到的ip地址和hostname配置

192.168.40.128 master
192.168.40.130 node1
192.168.40.131 node2

185.199.108.133 raw.githubusercontent.com

其中 185.199.108.133 是后续安装flannel网络插件要用到的

验证

ping node1

Close SelLinux(ALL)

配置

setenforce 0  
sed -i --follow-symlinks 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

验证

getenforce

Close FireWalld(ALL)

配置

systemctl stop firewalld
systemctl disable firewalld

验证

systemctl status firewalld

Close SwapOff(ALL)

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

添加K8S、Docker的安装源(ALL)

K8S

cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[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

Docker

sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装K8S组件(ALL)

yum install kubelet-1.22.4 kubectl-1.22.4 kubeadm-1.22.4 docker-ce-20.10.0 docker-ce-cli-20.10.0 -y

这里说明一下,我这里的指令指定了版本,k8s的所有版本使用起来操作方法都一样,但是如果用其他版本的话,可能需要配置一些东西

启动Kubelet、Docker,设置开机自启(ALL)

配置

systemctl enable kubelet
systemctl start kubelet
  
systemctl enable docker
systemctl start docker

Kubelet组件运行在Node节点上,维持运行中的Pods以及提供kuberntes运行时环境,主要完成以下使命:

  1. 监视分配给该Node节点的pods
  2. 挂载pod所需要的volumes
  3. 下载pod的secret
  4. 通过docker/rkt来运行pod中的容器
  5. 周期的执行pod中为容器定义的liveness探针
  6. 上报pod的状态给系统的其他组件
  7. 上报Node的状态

验证

systemctl daemon-reload
systemctl status kubelet

 要保证为running

 如果出错,卸载重装

yum -y remove kubelet   // -y表示又询问都是yes
yum list kubelet             // 查看是否存在

----查看状态
systemctl daemon-reload
systemctl status kubelet

yum -y install kubelet        // 重新安装
systemctl enable kubelet    // 开机自启
systemctl start kubelet       // 启动

修改Docker配置(ALL)

配置

cat <<EOF > /etc/docker/daemon.json
{
    "registry-mirrors": ["https://registry.docker-cn.com"],
    "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
systemctl daemon-reload
systemctl restart docker

验证

docker info |grep Cgroup

初始化集群(Master)

kubeadm init --kubernetes-version=1.22.4 \
--apiserver-advertise-address=192.168.40.128 \
--image-repository registry.aliyuncs.com/google_containers \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16
  • --image-repository registry.aliyuncs.com/google_containers 指定镜像源,由于kubeadm 默认从官网k8s.grc.io下载所需镜像,国内无法访问,因此需要通过--image-repository指定阿里云镜像仓库地址
  • --kubernetes-version:版本信息 kubectl version 查询
  • 定义POD的网段为: 10.244.0.0/16
  • apiserver地址就是master本机IP地址
  • --service-cidr=10.96.0.0/12 : 这个参数后的IP地址直接就套用10.96.0.0/12 ,以后安装时也套用即可,不要更改
  • --pod-network-cidr=10.244.0.0/16 : k8s内部的pod节点之间网络可以使用的IP段,不能和service-cidr写一样,如果不知道怎么配,就先用这个10.244.0.0/16

 如果出现报错,重置

kubeadm reset

成功后,一定要复制最后一句话

kubeadm join 192.168.40.128:6443 --token zyxhg5.ua8dwh4wx9dgrwzk --discovery-token-ca-cert-hash sha256:70d215908d3fefe90b0ca2d00eed5342df3eb083862dd7ed91a105972ac82f29

如果没有复制,可以重新获取

kubeadm token create --print-join-command

复制权限文件(Master)

su - root
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

安装Flannel网络插件(Master)

 

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

网络可能会很慢,多试几次

加入集群(Node)

这个步奏就是在子结点上,执行上面主节点初始化时获取的 join 指令 

复制权限文件(Node)

mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

查看所有节点(ALL)

kubectl get nodes

 

标签:kubernetes,kubelet,部署,--,systemctl,集群,yum,docker,k8s
From: https://www.cnblogs.com/zyfeng/p/17499057.html

相关文章

  • 统信UOS系统开发笔记(六):提取在线安装软件后,提取其安装包,部署目标机使用离线软件包方式
    前言  前面搭建了基础环境,在使用统信UOS系统的相关行业也是不能上网的,但是可以传递压缩包,为了很好的方便相关从业人员工作,特将此种方式流程分享出来。(与国产银河麒麟不同)  本篇文章的重点就是离线安装,包括了在线安装,提取离线安装包,离线安装并完成测试验证。  本文以sshpas......
  • 自然语言处理历史最全预训练模型(部署)汇集分享
    什么是预训练模型?预练模型是其他人为解决类似问题而创建的且已经训练好的模型。代替从头开始建立模型来解决类似的问题,我们可以使用在其他问题上训练过的模型作为起点。预训练的模型在相似的应用程序中可能不是100%准确的。本文整理了自然语言处理领域各平台中常用的NLP模型,常......
  • PMML-ONNX-AI Serving等深度学习模型上线-部署实战经验分享
    AI的广泛应用是由AI在开源技术的进步推动的,利用功能强大的开源模型库,数据科学家们可以很容易的训练一个性能不错的模型。但是因为模型生产环境和开发环境的不同,涉及到不同角色人员:模型训练是数据科学家和数据分析师的工作,但是模型部署是开发和运维工程师的事情,导致模型上线部署......
  • HDFS集群环境部署
    第一步,上传Hadoop安装包到node1节点。输入Linux命令:ll查看是否下载成功。 第二步:然后就行解压:解压语句:tar-zxvfhadoop-3.3.4.tar.gz-C/export/server第三步:构建软连接:cd/export/serverin-s/export/server/hadoop-3.3.4hadoop ......
  • ansible部署与实践
    自动化工具ansible部署和实践原创 对点 DevOps云技术栈 2023-06-1623:26 发表于广东收录于合集#ansible1个1介绍和部署1.1介绍ansible的功能ansible是一个基于Python开发的自动化运维工具,基于ssh协议实现远程管理,可以实现多种批量管理操作.批量系统配......
  • spring boot 实现热部署
    一、热部署/热加载热部署(HotDeploy):热部署针对的是容器或者是整个应用,部署了新的资源或者修改了一些代码,需要在不停机的情况下的重新加载整个应用。热加载(HotSwap):热加载针对的是单个字节码文件,指的是重新编译后,不需要停机,应用程序就可以加载使用新的class文件。二、springb......
  • 【环境部署】SPECTER模型-基于transformer的科学出版物
    论文背景标题:SPECTER:Document-levelRepresentationLearningusingCitation-informedTransformers摘要:表示学习是自然语言处理系统的关键组成部分。像BERT这样的最新Transformer语言模型学习了强大的文本表示,但这些模型针对标记和句子级别的训练目标,并不利用相关性信息,这限......
  • 负载均衡的部署方式
    网上找到两种负载均衡部署方式的分类描述:百度百科的http://baike.baidu.com/view/51184.htm分三类:路由模式桥接模式服务直接返回模式51cto的一篇博客:http://virtualadc.blog.51cto.com/3027116/611592分四类:串接路由模式(Routed)单臂模式(One-arm)透明模式(Transpa......
  • 部署zabbix5
    部署zabbix5.0前言检查防火墙是否关闭vim/etc/selinux/configSELINUX=disabled内存4G为好配置好阿里yum源实验步骤获取zabbix的下载源rpm-Uvhhttps://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm更换za......
  • 本地部署AI知识库
    前言之前使用了多个基于向量库+chatGPT本地知识库产品,大概分析和比较了一下:使用目前云服务产品的主要的缺陷主要是数据存储在云端,存在一些安全上的问题,思考如何部署本地的AI知识库,目前的选择有两个:使用本地向量库+本地大模型,数据完全私有,如基于langchain+ChatGLM的本地知识库......