当前位置: 首页 > news >正文

自助手机建站系统免费广告在线制作

自助手机建站系统,免费广告在线制作,网站建设及优化教程,南京网站设计公司推荐使用kubeadm安装部署k8s集群 目前生产部署Kubernetes 集群主要有两种方式: kubeadm Kubeadm 是一个K8s 部署工具,提供kubeadm init 和kubeadm join,用于快速部署Kubernetes 集群。 官方地址:https://kubernetes.io/docs/refer…

使用kubeadm安装部署k8s集群

目前生产部署Kubernetes 集群主要有两种方式:

kubeadm

Kubeadm 是一个K8s 部署工具,提供kubeadm init 和kubeadm join,用于快速部署Kubernetes 集群。

官方地址:https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm/

二进制包

从github 下载发行版的二进制包,手动部署每个组件,组成Kubernetes 集群。

Kubeadm 降低部署门槛,但屏蔽了很多细节,遇到问题很难排查。如果想更容易可控,推荐使用二进制包部署Kubernetes 集群,虽然手动部署麻烦点,期间可以学习很多工作原理,也利于后期维护。

本篇介绍使用kubaadm安装部署集群,本篇安装是k8s:1.32.17版本的,之前升级内核也是为了安装版本,(之前内核太低的时候也安装过,但是集群出现问题,出现连接不上命令行的问题,因此进行内核升级处理),本篇会介绍安装时候,遇到的问题,恳请各位大佬批评指正。下面进行安装部署

k8s是基于docker为底层的逻辑在运行,安装的是1.32.17因此docker的版本也不能偏低(否测会出现不兼容等等的一些问题),下面开始安装部署以及环境准备

一、环境介绍

角色ip组件
master192.168.10.10docker、kubeadm、kubectl、kubelet
node1192.168.10.20docker、kubeadm、kubectl、kubelet
node2192.168.10.30docker、kubeadm、kubectl、kubelet

1.1节点准备

(所有节点升级内核)https://blog.csdn.net/mfq0622/article/details/147167939?spm=1001.2014.3001.5502

hostnamectl #确保所有节点的内核版本要进行升级,不低于这个版本

在这里插入图片描述

1.2主机名解析

vim /etc/hosts

在这里插入图片描述

1.3 时间同步

systemctl  start chonyd
systemctl enable chronyd
date

要确保时间是一致的

在这里插入图片描述

1.4禁用iptables和firewalld服务

kubernetes和docker 在运行的中会产生大量的iptables规则,为了不让系统规则跟它们混淆,直接关闭系统的规则

systemctl stop firewalld
systemctl disable firewalld
#关闭iptables服务
systemctl stop iptables
systemctl disable iptables

1.5 禁用selinux

selinux是liunx系统下面的一个安全服务,如果不关闭它,会在集群安装中出现问题

#编辑 /etc/selinux/config 文件,修改selinux的值为disable
#注意修改完毕之后需要重启linux服务
SELINUX=disable

1.6 禁用swap分区

swap分区指的是虚拟内存分区,他的作用是物理内存使用完,之后将磁盘空间虚拟成内存来使用,启用swap设备会对系统的性能产生非常负面的影响,因此kubernets要求每个节点都要禁用swap设备,但是如果因为某些原因不能关闭swap分区,就需要在集群安装过程中通过明确的参数进行配置说明

# 编辑分区配置文件/etc/fstab,注释掉swap分区一行
# 注意修改完毕之后需要重启linux服务
vim /etc/fstab
注释掉 /dev/mapper/centos-swap swap
# /dev/mapper/centos-swap swap

1.7修改linux内核参数

//调整内核参数
cat > /etc/sysctl.d/kubernetes.conf << EOF
#开启网桥模式,可将网桥的流量传递给iptables链
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
#关闭ipv6协议
net.ipv6.conf.all.disable_ipv6=1
net.ipv4.ip_forward=1
EOF//生效参数
sysctl --system 

1.8添加内核参数

vim /etc/security/limits.conf  内核限制配置
尾部添加
*  soft  nofile  65536
*  hard  nofile  65536
*  soft  nproc   65536
*  hard  nproc   65536
*  soft  memlock  unlimited
*  hard  memlock  unlimited

二、安装docker

#1、切换镜像源
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo 
# 2、查看当前镜像源中支持的docker版本
[root@master ~]# yum list docker-ce --showduplicates# 3、安装特定版本的docker-ce
# 必须制定--setopt=obsoletes=0,否则yum会自动安装更高版本
[root@master ~]# yum install docker-ce-20.10.24 docker-ce-cli-20.10.24 containerd.io
添加镜像地址
cat > /etc/docker/daemon.json <<EOF
{"registry-mirrors": ["https://hub-mirror.c.163.com","https://docker.m.daocloud.io","https://ghcr.io","https://mirror.baidubce.com","https://docker.nju.edu.cn","https://uy760d98.mirror.aliyuncs.com","https://docker.hpcloud.cloud","https://docker.unsee.tech","https://docker.1panel.live","http://mirrors.ustc.edu.cn","https://docker.chenby.cn","http://mirror.azure.cn","https://dockerpull.org","https://dockerhub.icu","https://hub.rat.dev"],"exec-opts": ["native.cgroupdriver=systemd"],"log-driver": "json-file","log-opts": {"max-size": "100m"}
}EOF
#使用Systemd管理的Cgroup来进行资源控制与管理,因为相对Cgroupfs而言,Systemd限制CPU、内存等资源更加简单和成熟稳定。
#日志使用json-file格式类型存储,大小为500M,保存在/var/log/containers目录下,方便ELK等日志系统收集和管理日志。
4、重启加载并启动docker
systemctl daemon-reload
systemctl restart docker

在这里插入图片描述

现在docker安装好了我们安装k8s

三、安装k8s

1.1由于k8s镜像站在国外,我们换成国内的镜像源


//定义kubernetes源
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=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
EOF
#开始安装yum install --setopt=obsoletes=0 kubeadm-1.23.17-0 kubelet-1.23.17-0 kubectl-1.23.17-0 -y
#设置开机自启
systemctl enable kubelet.service

1.2下面在进行集群初始化

kubeadm init \--apiserver-advertise-address=192.168.10.10 \--image-repository registry.aliyuncs.com/google_containers \--kubernetes-version=v1.23.17 \--service-cidr=10.96.0.0/12 \--pod-network-cidr=10.244.0.0/16# 创建必要文件
[root@master ~]# mkdir -p $HOME/.kube
[root@master ~]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master ~]# sudo chown $(id -u):$(id -g) $HOME/.kube/conf

在这里插入图片描述

1.3下面的操作在node节点进行操作

kubeadm join 192.168.10.10:6443 --token 6u9k6k.i5u81qay5i1a03o5 \--discovery-token-ca-cert-hash sha256:3b26da02aa942983d08f3c0e7cf2b65d551ff6e367b3a2c4aade023f1fc5b722

1.4然后在主节点查看会出现NotReady的信息

kubectl get nodes

在这里插入图片描述

1.5下面需要安装网络插件,在主节点操作即可

kubectl apply -f https://raw.githubusercontent.com/flannel-io/flannel/v0.17.0/Documentation/kube-flannel.yml

这个外网不好访问,可以将yaml文件下载下来

https://github.com/flannel-io/flannel/tree/master/Documentation/kube-flannel.yml

手动拉取

也可手动拉取指定版本
docker pull quay.io/coreos/flannel:v0.14.0 #拉取flannel网络,三台主机
docker images #查看仓库是否拉去下来

四、集群测试

#查看集群状态
kubectl get nodes
创建nginx服务
kubectl create deployment nginx  --image=nginx:1.14-alpine
暴露端口
kubectl expose deploy nginx  --port=80 --target-port=80  --type=NodePort
查看服务
kubectl get pod,svc

在这里插入图片描述

1.1验证服务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、命令补全

1.1这个集群安装好了,但是使用tab补全不了命令这里需要进行安装设置

yum -y install bash-completion
source /usr/share/bash-completion/bash_completion
echo "source <(kubectl completion bash)" >> ~/.bashrc

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

六、故障排查和处理

故障1

安装k8s的时候遇见一个https的问题,(忘记截图了)这里面找了一个证书,放上去了加权限,并且运行了,发现还是没有效果,然后进行了重置集群的操作就正常了(根因没找出来,希望大佬指点一二)

kubeadm reset

故障2

在安装flannel插件的时候遇见一个pod起不来,然后本地有镜像,kubectl describe的时候发现还是去远程拉取

解决方法,在从节点都将镜像下载下来了,后面正常启动了

在这里插入图片描述

故障3

在进行验证服务的时候也出现了本地有这个nginx1.14版本的镜像还是回去远程拉取镜像(从节点也下载了)

解决办法:通过询问ai,说是nginx:1.14和nginx1.14是两个版本

然后去修改了pod需要的镜像版本就好了

kubectl edit deploy -n default

在这里插入图片描述

escribe的时候发现还是去远程拉取

解决方法,在从节点都将镜像下载下来了,后面正常启动了

[外链图片转存中…(img-PpqtBH03-1745074383624)]

故障3

在进行验证服务的时候也出现了本地有这个nginx1.14版本的镜像还是回去远程拉取镜像(从节点也下载了)

解决办法:通过询问ai,说是nginx:1.14和nginx1.14是两个版本

然后去修改了pod需要的镜像版本就好了

kubectl edit deploy -n default

在这里插入图片描述

http://www.dtcms.com/a/436860.html

相关文章:

  • seo同行网站WordPress用户认证中心
  • dede二手车网站源码友链交易平台
  • 网站建设定金做什么会计分录园林景观设计公司作品
  • 做网站的空间要多大的为什么我的网站百度搜不到
  • 营销型网站模板展示山东农业大学学风建设专题网站
  • 手机网站怎么建立渝中网站建设
  • 南平 网站建设我的网站没备案怎么做淘宝客推广
  • 垂直电子商务网站建设哈尔滨市住房和城乡建设局局网站
  • 手机版网站设计案例友情链接代码
  • 哪些是用vue做的网站c2c网站有哪几个
  • 如果自己制作网站seo排名如何优化
  • 手机端网站建设江苏建科建筑培训网
  • 后台网站手机版视频怎么做网站备案有什么要求吗
  • 郓城网站建设电话好搜360网站
  • 自己电脑做网站需要备案吗2内蒙古做网站的公司有哪些
  • 河南金建建设集团网站58同城最新招聘信息
  • 哪些网站做外贸哈尔滨专业官网建站企业
  • 怎么用vs2008做网站全渠道营销成功案例
  • 自己写小说的网站网站开发方式的选择
  • 湖南建设网站官网网站制作背景图片
  • 有哪些做h5的网站wonder audio wordpress
  • 南昌电影网站开发足球世界排名国家最新
  • 无网站做cpa网站服务器如何选择
  • 苏州吴江做网站有一个可以做任务的网站
  • 浙江交工宏途交通建设有限公司网站南阳美容网站建设
  • 重庆网站建设大概需要多少钱全新升级网站
  • 橙域名网站wordpress显示注册按钮
  • 企业网站建设工作流程大企业宣传片
  • 小企业做网站有用吗三合一网站怎么做
  • 网站建设询价文件卖信息的网站