K8s入门指南之环境搭建/部署初始化(单机模式)超详细

这篇博客详细介绍了如何在CentOS 7上从头开始搭建Kubernetes(K8s)的单机环境,包括关闭swap、禁用selinux、防火墙配置、安装docker、配置k8s、启动kubelet、安装CNI插件等关键步骤,确保读者能成功部署K8s。

        很多人K8s都安装不了,经过几番尝试,我终于成功搭建了k8s。通过我以下步骤,绝对可以成功。特此记录笔记,为了避免其他人踩坑,适合所有k8s的学者。

        需要centos 7 虚拟机一台;内存2G以上;磁盘20G以上;可参考上一篇《VMware安装centOs镜像》

目录

1.关闭swap

2.关闭selinux

3.关闭防火墙 

4.启用网络配置

5.设置网桥参数

6.修改hosts文件

 7.修改hostname

8.安装docker

9.docker配置systemd

10.重启docker

11.配置k8s下载资源配置文件

12.安装 kubelet kubeadm kubectl

 14.启动kubelet

15.init-config配置

16.重启容器

17.拉取k8s相关镜像

 18.部署K8s

19.环境变量设置 

 20.安装CNI插件

结束语


1.关闭swap

vi /etc/fstab

 注释掉swap;

临时关闭:

swapoff -a;

2.关闭selinux

vi /etc/sysconfig/selinux

设置SELINUX=disabled,需要重启reboot。

3.关闭防火墙 

systemctl stop firewalld
systemctl disable firewalld

4.启用网络配置

echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables

5.设置网桥参数

cat << EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

6.修改hosts文件

vi /etc/hosts

设置:192.168.140.132  k8s-single

 7.修改hostname

hostnamectl set-hostname k8s-single

8.安装docker

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

9.docker配置systemd

创建 /etc/docker/daemon.json文件 ,内容为:

{
  "registry-mirrors": ["https://t81qmnz6.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"]
}

10.重启docker

systemctl daemon-reload
systemctl restart docker
systemctl enable docker

11.配置k8s下载资源配置文件

创建文件:/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

12.安装 kubelet kubeadm kubectl

yum install -y --nogpgcheck kubelet-1.23.5 kubeadm-1.23.5 kubectl-1.23.5

13.查看是否安装成功

kubelet --version
kubectl version
kubeadm version

 14.启动kubelet

systemctl daemon-reload
systemctl start kubelet
systemctl enable kubelet

15.init-config配置

生成文件:

kubeadm config print init-defaults > init-config.yaml

配置IP地址:localAPIEndpoint.advertiseAddress: 192.168.140.132

配置node的名称:nodeRegistration.name:master

配置阿里云镜像地址:imageRepository:registry.aliyuncs.com/google_containers

配置完后,文件如下:

16.重启容器

执行以下命令:

mv /etc/containerd/config.toml /tmp/
systemctl restart containerd

17.拉取k8s相关镜像

kubeadm config images pull --config=init-config.yaml

 如果不行,用docker去拉取镜像:

for i in `kubeadm config images list --config=init-config.yaml`; do 
  imageName=${i#registry.k8s.io/}
  docker pull $imageName
done;

如果出现下图,则已经成功:

 18.部署K8s

kubeadm init \
--apiserver-advertise-address=192.168.140.132 \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version v1.23.5 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16

过程可能要稍等几分钟,出现kubeadm join .....的提示,就证明执行成功了。

19.环境变量设置 

如果省略这个步骤,执行kubectl get nodes会出现以下异常:

 配置环境变量:

echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> /etc/profile;
source /etc/profile;

上面的方式,重启机器后会失效,持久的方式:

vi /etc/profile;
在后面新增一行:export KUBECONFIG=/etc/kubernetes/admin.conf

最后source /etc/profile;

如图,再次执行:kubectl get nodes,已经成功。

 20.安装CNI插件

执行kubectl get nodes,可以看到status是notReady的状态,而正确的应该是ready状态才是。如图:

这是因为没有安装网络插件CNI

执行命令安装:

kubectl apply -f "https://docs.projectcalico.org/manifests/calico.yaml"

再次查看kubectl get nodes,可以看到状态还是notReady,这是因为默认master是不向自己注册node的,是不能创建pod的。

执行命令: 

kubectl taint nodes --all node-role.kubernetes.io/master-

可见,状态已经为ready,至此,安装完成。

结束语

至此,本次单机模式的k8s已经搭建完成,已经做好部署应用的准备,下一篇将以一个小应用的例子,进行单机的部署。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值