欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CentOS7搭建k8s集群

程序员文章站 2022-03-01 13:02:08
...

准备条件

硬件准备

  1. 请确保CPU至少2核,内存2G
  2. 内核4以上(包括4)
    centOS7内核升级.
  3. 禁用防火墙
  4. 如果是多台虚拟机,需要保证虚拟机hostname不同。如果几台虚拟机是复制出来的,很可能忘记修改hostname、静态IP
systemctl stop firewalld
systemctl disable firewalld
  1. 禁用SELINUX
临时禁用
setenforce 0
永久禁用 
vim /etc/selinux/config  
SELINUX=disabled
  1. 修改k8s.conf文件
cat <<EOF >  /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system #立即生效
  1. 关闭swap
# 临时关闭
swapoff -a

#永久关闭swap,重启后生效
修改 /etc/fstab 文件,注释掉 SWAP 的自动挂载
# 注释掉以下字段
/dev/mapper/cl-swap     swap                    swap    defaults        0 0`

docker的准备

  1. docker安装百度
  2. 修改docker配置使用systemd (必须配置,不然会报错)
vim  /etc/docker/daemon.json

#粘贴以下内容
{
  "exec-opts": ["native.cgroupdriver=systemd"]
}
#如果使用了加速器配置格式如下
{
  "registry-mirrors": ["https://yqbg1qh9.mirror.aliyuncs.com"],
  "exec-opts": ["native.cgroupdriver=systemd"]
 }
systemctl restart docker
systemctl status docker

k8s源的准备

由于有墙的限制,所以要使用阿里的yum源

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
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
EOF

yum  clean  all
yum  upgrade

镜像准备

下载k8s所需镜像,registry.cn-hangzhou.aliyuncs.com/google_containers是待会初始化主节点的时候要使用的仓库地址

#!/bin/bash

images=(
	kube-apiserver:v1.21.0
    kube-proxy:v1.21.0
	kube-controller-manager:v1.21.0
	kube-scheduler:v1.21.0
	coredns:v1.8.0
	etcd:3.4.3-0
    pause:3.1
)

for imageName in ${images[@]} ; do
    docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
done

安装软件

yum install -y kubelet-1.21.0 kubeadm-1.21.0 kubectl-1.21.0
systemctl enable kubelet && systemctl start kubelet

初始化master节点

kubeadm init --kubernetes-version=1.21.0 \
--apiserver-advertise-address=192.168.56.122 \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
--service-cidr=10.1.0.0/16 \
--pod-network-cidr=10.244.0.0/16
kubeadm init --kubernetes-version=1.18.1 \  安装时指定的版本
--apiserver-advertise-address=192.168.128.130 \  虚拟机的IP地址,我用的静态IP
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \  仓库名称,会从这个仓库拉取镜像
--service-cidr=10.1.0.0/16 \  k8s的Service网络
--pod-network-cidr=10.244.0.0/16  k8s的pod 网络

排错

  1. coredns:v1.8.0不存在
    CentOS7搭建k8s集群
    注意到提示中的仓库路径有两个coredns
    CentOS7搭建k8s集群

就把原来的coredns打个标签吧

docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:v1.8.0  \
registry.cn-hangzhou.aliyuncs.com/google_containers/coredns/coredns:v1.8.0

注意点

只有master机器上要有k8s所需要的镜像,其他机器只要安装了kubectl、kubedam、kubelet就可以了
flannel在所有节点安装,安装之后,coredns镜像就是running状态了
默认在node节点不能使用kubectl命令,如果想使用则需要把master下的/etc/kubernetes/admin.conf复制到node相同的路径下,再在node上执行

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

安装flannel时,或许有墙导致下载超时,这里有源文件

参考

https://blog.csdn.net/shykevin/article/details/105526586?utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.no_search_link

https://blog.csdn.net/weixin_42715225/article/details/112969089

https://blog.csdn.net/zh452647457/article/details/118078110

https://blog.csdn.net/weixin_38169886/article/details/99809114

相关标签: k8s docker k8s