Loading

Centos7.9搭建K8S

前期准备

使用VMware创建三台centos虚拟机

192.168.222.136 master
192.168.222.137 node1
192.168.222.138 node2

K8S搭建

设置centos镜像源

1、安装wget
yum install -y wget
2、下载CentOS 7的repo文件
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

或者

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
3、更新镜像源
清除缓存:yum clean all
生成缓存:yum makecache

4、确保 Docker 仓库已正确配置

cat /etc/yum.repos.d/docker-ce.repo

# 没配置则进行配置
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

或

sudo tee /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/$releasever/$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/docker-ce/linux/centos/gpg
EOF

安装docker

  1. 查看可安装docker 版本

    yum list docker-ce --showduplicates | sort -r

  2. 安装指定docker版本
    yum install docker-ce-20.10.16-3.el7 docker-ce-cli-20.10.16-3.el7 containerd.io

设置docker 镜像源

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
	"registry-mirrors": ["https://docker.registry.cyou",
		"https://docker-cf.registry.cyou",
		"https://dockercf.jsdelivr.fyi",
		"https://docker.jsdelivr.fyi",
		"https://dockertest.jsdelivr.fyi",
		"https://mirror.aliyuncs.com",
		"https://dockerproxy.com",
		"https://mirror.baidubce.com",
		"https://docker.m.daocloud.io",
		"https://docker.nju.edu.cn",
		"https://docker.mirrors.sjtug.sjtu.edu.cn",
		"https://docker.mirrors.ustc.edu.cn",
		"https://mirror.iscas.ac.cn",
		"https://docker.rainbond.cc"
	]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl enable docker

K8S安装

  1. 安装所需插件

yum install -y yum-utils device-mapper-persistent-data lvm2
# yum 更新
sudo yum update -y
# tab 命令补全
sudo yum install -y bash-completion
# wget
sudo yum install -y wget
# vim 编辑器
sudo yum install -y vim-enhanced
# 网络工具
sudo yum install -y net-tools
# gcc 编译器
sudo yum install -y gcc

  1. 将节点加入主机
cat >> /etc/hosts << EOF
192.168.222.136 master
192.168.222.137 node1
192.168.222.138 node2
EOF
  1. 设置NTP校时
sudo ntpdate ntp1.aliyun.com
sudo systemctl restart ntpdate
sudo systemctl enable ntpdate
  1. 关闭防火墙
sudo systemctl stop firewalld.service 
sudo systemctl disable firewalld.service
  1. 关闭 swap 交换空间
sudo swapoff -a
sudo sed -i 's/.*swap.*/#&/' /etc/fstab

  1. 关闭 selinux
# 查看当前
getenforce
cat /etc/selinux/config
# 关闭selinux
sudo setenforce 0
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
# 检查是否修改成功
cat /etc/selinux/config
  1. 添加阿里云 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
# 是否检查 gpg 签名文件
gpgcheck=0
# 是否检查 gpg 签名文件
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
  1. 安装k8s(需先安装docker)
sudo yum install -y kubelet-1.19.0-0 kubeadm-1.19.0-0 kubectl-1.19.0-0 --disableexcludes=kubernetes --nogpgcheck
systemctl daemon-reload
sudo systemctl restart kubelet
sudo systemctl enable kubelet
  1. 重启系统,确保配置生效sudo reboot

K8S启动

  1. master 初始化(只在master节点上执行)
# 下载所需镜像
#查看镜像
kubeadm config images list --image-repository=registry.aliyuncs.com/google_containers

#下载镜像
kubeadm config images pull --image-repository=registry.aliyuncs.com/google_containers


# 初始化master节点
sudo kubeadm init \
  --apiserver-advertise-address 192.168.222.136 \
  --image-repository registry.aliyuncs.com/google_containers \
  --kubernetes-version v1.19.0 \
  --service-cidr 10.0.96.0/12 \
  --pod-network-cidr 10.244.0.0/16 \
  --ignore-preflight-errors=SystemVerification
  1. 初始化成功后执行(初始化成功后,日志会显示需要执行的命令)
# 示例
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

  1. 子节点加入主节点
# 示例
kubeadm join 192.168.222.136:6443 --token y5fkbd.hva4497ze22d5mu4 \
    --discovery-token-ca-cert-hash sha256:df8aba401faddefa653a97973a90f6f1447837ac64c04082ebf9707781859a5b

  1. 使用calico配置网络(只在master节点上执行)
# 1. 下载yaml
wget --no-check-certificate https://projectcalico.docs.tigera.io/archive/v3.19/manifests/calico.yaml

# 2. 下载所需镜像(所有节点都需要有这些镜像,如果子节点没装,主节点会发送命令给子节点,但是由于网络问题,一般都Pull不下来,所以最好一开始都自己pull下)
docker pull calico/kube-controllers:v3.19.4
docker pull calico/node:v3.19.4
docker pull calico/cni:v3.19.4
docker pull calico/pod2daemon-flexvol:v3.19.4

# 3. 修改 calico.yaml 文件
vim calico.yaml
# 修改1:将默认pod网络修改为pod网络
- name: CALICO_IPV4POOL_CIDR
  value: "192.168.0.0/16"
# 修改后的配置
- name: CALICO_IPV4POOL_CIDR
  value: "10.244.0.0/16"
# 修改2:找到CLUSTER_TYPE那行,在后面添加如下内容,ens33处填写主机的网卡名称(ifconfig)
- name: IP_AUTODETECTION_METHOD
  value: "interface=ens33"


# 4. 在下载目录执行,一般是放在/root目录
kubectl delete -f calico.yaml
kubectl apply -f calico.yaml
  1. 验证网络是否配置成功
kubectl get pods -n kube-system -l k8s-app=calico-kube-controllers

kubectl get pods -n kube-system -o wide


6. 验证节点是否正常

kubectl get nodes

K8S集群测试

# 创建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


其他

卸载Docker

#删除Docker相关源
sudo rm -f /etc/yum.repos.d/docker*.repo
#卸载旧版本的Docker和相关的软件包
sudo yum -y remove \
docker-ce \
containerd.io \
docker-ce-rootless-extras \
docker-buildx-plugin \
docker-ce-cli \
docker-compose-plugin

参考内容

https://znunwm.top/archives/k8s-xiang-xi-jiao-cheng
https://blog.csdn.net/SsjjsS2019/article/details/144186076
https://blog.csdn.net/weixin_44084452/article/details/130797232

posted @ 2025-03-13 11:02  IamHzc  阅读(147)  评论(0)    收藏  举报