侧边栏壁纸
博主头像
随心 博主等级

没有天赋,那就一直重复

  • 累计撰写 13 篇文章
  • 累计创建 4 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

k8s集群搭建教学

随心
2025-06-28 / 0 评论 / 0 点赞 / 3 阅读 / 0 字

k8s安装步骤

1、安装docker ##所有机器均操作

mv /etc/yum.repos.d/docker-ce.repo /etc/yum.repos.d/docker-ce.repo.bak

##阿里云docker镜像源

cat > /etc/yum.repos.d/docker-ce.repo <<EOF

[docker-ce-stable]

name=Docker CE Stable - \$basearch

baseurl=https://mirrors.aliyun.com/docker-ce/linux/centos/7/\$basearch/stable

enabled=1

gpgcheck=1

gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg

EOF

yum clean all

yum makecache

yum install -y docker-ce-20.10.7 docker-ce-cli-20.10.7 containerd.io ##安装指定版本

##镜像加速

echo '{

"registry-mirrors": [

"https://docker.1ms.run",

"https://docker.1panel.live",

"https://docker.ketches.cn"

]

}' | sudo tee /etc/docker/daemon.json

systemctl start docker

systemctl enable docker

sudo systemctl restart docker

docker version

--------------------------------------------------------------------------------------

自己搭建可以把防火墙卸载或者关闭。以下操作所有机器均执行。

1、各个机器设置自己的域名

hostnamectl set-hostname k8s-master

2、将 SELinux 设置为 permissive 模式(相当于将其禁用)

sudo setenforce 0

sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config

3、关闭swap

swapoff -a

sed -ri 's/.*swap.*/#&/' /etc/fstab

4、允许 iptables 检查桥接流量

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf

br_netfilter

EOF

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

EOF

sudo sysctl --system

--------------------------------------------------------------------------------------

1、安装kubelet、kubeadm、kubectl ##所有机器均操作

cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo

[kubernetes]

name=Kubernetes

baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64

enabled=1

gpgcheck=0

repo_gpgcheck=0

gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg

http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg

exclude=kubelet kubeadm kubectl

EOF

sudo yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9 --disableexcludes=kubernetes

sudo systemctl enable --now kubelet

--------------------------------------------------------------------------------------

1、下载各个机器需要的镜像

master节点需要全部的镜像,workernode节点其实只需要一个kube-proxy镜像就可以了。

sudo tee ./images.sh <<-'EOF'

#!/bin/bash

images=(

kube-apiserver:v1.20.9

kube-proxy:v1.20.9

kube-controller-manager:v1.20.9

kube-scheduler:v1.20.9

coredns:1.7.0

etcd:3.4.13-0

pause:3.2

)

for imageName in ${images[@]} ; do

docker pull registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images/$imageName

done

EOF

chmod +x ./images.sh && ./images.sh

--------------------------------------------------------------------------------------

1、初始化主节点 ##只在master节点操作

#所有机器添加master域名映射,以下需要修改为自己的

echo "192.168.30.130 k8s-master" >> /etc/hosts ##Ip是master节点的Ip

#主节点初始化

kubeadm init \

--apiserver-advertise-address=192.168.30.130 \ ##Ip是master节点的Ip

--control-plane-endpoint=k8s-master \ ##解析是上面hosts的那个。

--image-repository registry.cn-hangzhou.aliyuncs.com/lfy_k8s_images \

--kubernetes-version v1.20.9 \

--service-cidr=10.96.0.0/16 \

--pod-network-cidr=192.168.0.0/16

执行这条命令后,屏幕会显示操作步骤,按照步骤来即可。

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

------

这三条执行以后基本就算安装完成了,还需要安装的就是网络插件,以及被控节点的token了。

kebuctl get nodes ##检查会只有master节点。

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/

You can now join any number of control-plane nodes by copying certificate authorities

and service account keys on each node and then running the following as root:

##可以用以下命令把任意节点加入成为主节点。

kubeadm join k8s-master:6443 --token tsk5bs.2igm526qfczzvzzi \

--discovery-token-ca-cert-hash sha256:119850dd7e42f189f41304665854f4ee5a1f7b19b1b89c0ff85d7a91d9a8931c \

--control-plane

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

##可以用以下命令把任意节点加入成为worker节点。 ##这条在workernode执行,不在master执行。

kubeadm join k8s-master:6443 --token tsk5bs.2igm526qfczzvzzi \

--discovery-token-ca-cert-hash sha256:119850dd7e42f189f41304665854f4ee5a1f7b19b1b89c0ff85d7a91d9a8931c

#所有网络范围不重叠

--------------------------------------------------------------------------------------

1、安装网络组件 ##这个需要安装能对应k8s版本的calico要不然会报错。仅供个人学习使用。

curl https://docs.projectcalico.org/v3.20/manifests/calico.yaml -O

kubectl apply -f calico.yaml ##这一步会很慢,需要等挺久的,可以多执行几次,然后kebuctl get pods -A观察状态。

会看到一下内容。

kubectl get pods -A

NAMESPACE NAME READY STATUS RESTARTS AGE

kube-system calico-kube-controllers-577f77cb5c-lvlt5 1/1 Running 0 10m

kube-system calico-node-8spr2 1/1 Running 0 10m

kube-system coredns-5897cd56c4-8scqr 1/1 Running 0 22m

kube-system coredns-5897cd56c4-h29nf 1/1 Running 0 22m

kube-system etcd-k8s-master 1/1 Running 0 22m

kube-system kube-apiserver-k8s-master 1/1 Running 0 22m

kube-system kube-controller-manager-k8s-master 1/1 Running 0 22m

kube-system kube-proxy-g2gnd 1/1 Running 0 22m

kube-system kube-scheduler-k8s-master 1/1 Running 0 22m

然后执行kubectl get nodes,会看到master节点已经是准备状态。

kubectl get nodes

NAME STATUS ROLES AGE VERSION

k8s-master Ready control-plane,master 36m v1.20.9

--------------------------------------------------------------------------------------

1、使用主节点初始化时给出的token把worker节点加入到master节点。

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

##可以用以下命令把任意节点加入成为worker节点。 ##这条在workernode执行,不在master执行。

这条命令24小时内有效,超时以后需要重新或许token。

kubeadm token create --print-join-command ##重新获取token

以下这条命令需要再worker节点操作。

kubeadm join k8s-master:6443 --token tsk5bs.2igm526qfczzvzzi --discovery-token-ca-cert-hash sha256:119850dd7e42f189f41304665854f4ee5a1f7b19b1b89c0ff85d7a91d9a8931c

worker节点会回显这样一句话,“这个节点已经加入集群”。

This node has joined the cluster:

2、然后去master节点检查

kebuctl get nodes

会看到新进入的worker节点也是准备状态了。

kebuctl get pods -A

检查有一些应用还在加载状态,可以等他们全部加载running。我只想说这个会等很久很久,很久很久,可能是访问外网不通吧,或许是其他原因,

kube-system calico-node-c6qwx 1/1 Running 0 27m

kube-system calico-node-jgbf5 1/1 Running 0 27m

这两个至少会加载半小时。

--------------------------------------------------------------------------------------

至此,k8s集群也就部署完成了,完结,撒花!

但是有点问题,就是可视化界面部署有问题,可以用,命令行可以操作,或许是因为教程太老了。

0

评论区