k8s单master单node部署【测试环境部署】

前置工作

准备主机

主机名系统IP地址
k8s-masterCentOS710.10.10.221
k8s-nodeCentOS710.10.10.222

安装Linux系统配置网络、主机名、软件源相关操作

注意以下操作都是在所有主机操作

安装CentOS系统

安装CentOS7系统,镜像下载地址,可以百度搜索相关的大学镜像站,下载相关镜像,通过虚拟软件安装系统

注意:不建议使用克隆的方式进行多个系统的创建

设置静态IP地址

#看清楚自己的网卡名称,打开终端使用ip addr查看,具体的建议百度,谢谢

vi /etc/sysconfig/network-scripts/ifcfg-en32

TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static	#这里默认是DHCP,我们将它改写成static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens32
UUID=21bdf38f-58a6-4c22-9480-badb49080af0
DEVICE=ens32
ONBOOT=yes			#这里默认是no,我们将它改写成yes
IPADDR=10.10.10.221      #这里是安照自己的网络环境配置,要使系统可以正常通互联网
NETMASK=255.255.255.0
GATEWAY=10.10.10.254
DNS1=114.114.114.114

设置主机名称并配置hosts文件

#终端输入这个命令,编写hosts文件

vi /etc/hosts

将我们的主机名跟相关的IP地址都填写进去

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.10.10.221    k8s-master	
10.10.10.222    k8s-node

vi的操作方法不会的建议百度!!!!

#修改主机名称

hostnamectl set-hostname k8s-master #修改主机名称的命令,这个是在master节点操作
hostnamectl set-hostname k8s-node #修改主机名称的命令,这个是在node节点操作

测试:(测试之前需要重新启动系统)

​ 直接在终端ping百度跟相关的主机名称,通了就可以了。出现一下效果就代表你成功配置好了网络

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

配置软件源

从阿里云上面下载软件源

进入/etc/yum.repos.d/ 文件夹中

首先备份下 CentOS-Base.repo 文件使用cp、mv、都行

之后下载阿里源文件,同时改名字

curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo	/etc/yum.repos.d/CentOS-Base.repo #没有换行

然后使用命令清除缓存,生成缓存

yum clean all	#清除缓存
yum makecache	#生成缓存

离线修改

直接将下载好的源文件放入到==/etc/yum.repos.d/==文件夹中

然后执行清除缓存跟生成缓存的命令

更新软件

终端直接输入

yum update

配置软件环境(所有主机)

1、关闭防火墙

systemctl stop firewalld
systemctl disable firewalld

2、关闭SeLinux

vi /etc/selinux/config	#编辑文件,修改成SELINUX=disabled 这个方式是永久关闭

在这里插入图片描述

重启验证

getenforce	#终端输入这个出现disabled即可

3、关闭swap分区

vi /etc/fstab	#编辑文件,在/dev/mapper/centos-swap swap			swap defaults 0 0 这一行前面加#,注释掉它

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

4、设置网桥参数

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

5、设置时间同步

yum install ntpdate -y	#安装时间同步工具
ntpdate time.windows.com	#设置时间服务器

返回下面这一段即为成功
在这里插入图片描述

6、升级系统内核

yum update -y --exclude=kernel* && reboot	#先运行这个命令然后在安装内核包
cd /root && yum localinstall -y kernel-ml*	#本地安装内核包
#更改内核启动顺序
grub2-set-default  0 && grub2-mkconfig -o /etc/grub2.cfg

grubby --args="user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)"
#检查默认内核是不是4.19
grubby --default-kernel

成功效果图
在这里插入图片描述

7、安装docker

更新docker的yum源

#先安装wget工具
yum install wget -y
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo

安装最新的docker版本

yum install docker-ce -y

配置加速器加速下载

vi /etc/docker/daemon.json	#创建配置文件,并编写它
添加下面内容(友情提示:最好复制,这个玩意很容易报错)

{
"registry-mirrors": ["https://registry.docker-cn.com","https://gg3gwnry.mirror.aliyuncs.com"]
}

在这里插入图片描述

然后执行

systemctl enable docker	#让他开机自启动

然后还有个启动容器时运行:

containerd config default > /etc/containerd/config.toml	#修改默认配置文件
vi /etc/containerd/config.toml	#编辑文件,将[plugins]>[plugins."io.containerd.grpc.v1.cri"]>sandbox_image 引号内的值修改为  registry.aliyuncs.com/google_containers/pause:3.9

修改后
在这里插入图片描述
具体可以参观官网说明
https://v1-28.docs.kubernetes.io/zh-cn/docs/setup/production-environment/tools/kubeadm/install-kubeadm/

https://v1-28.docs.kubernetes.io/zh-cn/docs/setup/production-environment/container-runtimes/#containerd

部署k8s

1.添加k8s的阿里云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=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

2.安装kubeadm、kubelet 、kubectl

yum install kubelet-1.28.2 kubeadm-1.28.2 kubectl-1.28.2 -y

设置开机启动

systemctl enable kubelet

3.查看有没有安装

yum list installed | grep kubelet && yum list installed | grep kubeadm && yum list installed | grep kubectl

出现下面即可:

在这里插入图片描述

4.重启所有主机节点

reboot

5.部署master节点

kubeadm init \
--apiserver-advertise-address=10.10.10.221 \    #该地址为master主机地址
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.28.2 \
--service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16 #这个可以保持不变,除非你有特别的需要

说明:

–apiserver-advertise-address:master主机地址,跟其他pod互通的那个;

–image-repository:镜像仓库地址;

–pod-network-cidr:和–service-cidr类似,不能跟主机网络相同或冲突,也不能和–service-cidr一样;

–service-cidr 的选取不能和PodCIDR及本机网络有重叠或者冲突,一般可以选择一个本机网络和PodCIDR都没有用到的私网地址段,比如PODCIDR使用10.244.0.0/16, 那么service cidr可以选择10.96.0.0/12,网络无重叠冲突即可;

成功会输出以下信息:(忘记截图了)

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

#这一串东西要复制好
kubeadm join 10.10.10.221:6443 --token euw3x5.ko9ucg7a2xbnv6yu \
	--discovery-token-ca-cert-hash sha256:3a4c934a3e906642d3d0a0be18e62ea2a28c946ee322b14d8e78fde6bd23d10e 

5.1报错信息:egistry.aliyuncs.com/google_containers/pause:3.9" as the CRI sandbox image.

如果报错了出现报错:detected that the sandbox image “registry.k8s.io/pause:3.6” of the container runtime is inconsistent with that used by kubeadm. It is recommended that using “registry.aliyuncs.com/google_containers/pause:3.9” as the CRI sandbox image.

这个错误信息,就检查下安装docker中的第7项那个选项配置好没有

6.为用户赋予权限

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

这个时候可以查看nodes

kubectl get nodes

在这里插入图片描述

一开始是NOTReady,这个是正常状态。

7.node节点加入控制节点

#根据kubeadm init实际输出结果来执行,以下只是示例
kubeadm join 10.10.10.221:6443 --token euw3x5.ko9ucg7a2xbnv6yu \
	--discovery-token-ca-cert-hash sha256:3a4c934a3e906642d3d0a0be18e62ea2a28c946ee322b14d8e78fde6bd23d10e 

然后在master节点上继续查看

kubectl get nodes

8.部署网络插件

wget https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

#若是你自定义了pod-network-cidr,那么需要修改kube-flannel.yml中相应的内容,详情请参考:

https://github.com/flannel-io/flannel#deploying-flannel-manually

#【10.244.0.0/16】是默认的pod所在的cidr,由于自定义了pod的cidr,所以这里要修改下

vi kube-flannel.yml

注意事项:有时候这个配置文件是下载不聊image的,同时配置网络中的IP地址范围还是要改的,改成默认的就行。然后我门就需要将它的image镜像下载的链接地址修改下

这里推荐一个网站,是docker的镜像站,一般使用官网的镜像是下载不下来的

https://docker.aityp.com/

直接搜索镜像名,复制相关的链接,修改到yaml文件中,记住文件中的docker.io,所有的都要修改,之后保存,应用即可

9.测试

安装好了之后等一时,使用kubectl get nodes 命令查看node的状态信息,如果都是ready状态,那我们执行下一步

kubectl create deployment nginx-deployment --image=hub.atomgit.com/library/nginx:1.24-bullseye-perl
#image后面可以自定义镜像源
#这里在推荐一个镜像网站:https://hub.atomgit.com/repos

在这里插入图片描述

kubectl get pod -o wide  #查看pod容器

在这里插入图片描述

爬取下文件

在这里插入图片描述

至此测试环境的K8s的环境安装完成。第一次自己摸索部署,从网上查资料,不足之处多多担待哈!

环境部署使用到的文件分享链接

https://www.ilanzou.com/s/9ZAyKOOQ?code=ling k8s测试环境文件

转载注明出处,谢谢

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

凌晨呐

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

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

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

打赏作者

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

抵扣说明:

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

余额充值