k8s集群安装部署实战详细手册

Posted Xd聊架构

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s集群安装部署实战详细手册相关的知识,希望对你有一定的参考价值。

文章目录


一、k8s集群搭建

1.安装要求

  • 3台以上机器,操作系统 CentOS7.7以上64位系统
  • 具备docker环境(docker搭建参考:docker安装部署实战详细手册
  • 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多
  • 集群中所有机器之间网络互通
  • 可以访问外网,需要拉取镜像
iphostname
192.168.19.100master
192.168.19.101node1
192.168.19.102node2

2.关闭防火墙、selinux、swap分区

##关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

##关闭swap分区
swapoff -a  
sed -ri 's/.*swap.*/#&/' /etc/fstab 

## 把SELinux 设置为 permissive 模式(相当于禁用)
sudo setenforce 0 
sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config 

3.配置hostname、hosts、 iptables

##各自修改主机名
hostnamectl set-hostname master
hostnamectl set-hostname node1
hostnamectl set-hostname node2

##添加主机名与IP对应关系
echo '''
192.168.19.100 master
192.168.19.101 node1
192.168.19.102 node2
''' >> /etc/hosts

## 允许 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

4.配置k8s阿里源

#配置k8s的yum源地址
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
EOF

#安装 kubelet,kubeadm,kubectl
sudo yum install -y kubelet-1.20.9 kubeadm-1.20.9 kubectl-1.20.9

#启动kubelet
sudo systemctl enable --now kubelet

5.部署k8s的master和node节点

初始化master主节点
两个网段不要重,后面是/16,不要与当前机器网段一样

kubeadm init \\
--apiserver-advertise-address=192.168.19.100 \\
--image-repository registry.aliyuncs.com/google_containers \\
--kubernetes-version v1.20.9 \\
--service-cidr=10.96.0.0/16 \\
--pod-network-cidr=192.168.0.0/16 

这里执行完会生成一串命令用于node节点的加入,记录下来,接着执行以下命令

mkdir -p $HOME/.kube

cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

chown $(id -u):$(id -g) $HOME/.kube/config

部署node节点
复制上面生成的一串命令,我这里只是示例,命令根据你实际生成的复制去node节点执行

kubeadm join 192.168.19.100:6443 --token  ew01w0.s7951e0gggx5i6s7 --discovery-token-ca-cert-hash sha256:676f6de73444fdddba8510e0f61bba492cb190db86b8e5892d7a1e3c33411e75

6.安装网络插件(CNI)

下面两种插件二选一,master上执行,如果是云服务器建议按照flannel,calico可能会和云网络环境有冲突

安装flannel插件(轻量级用于快速搭建使用,初学推荐)
下载yaml文件(如下载出现问题,可以拷贝下面网址内容,本地创建kube-flannel.yml)

wget https://github.com/xuwei777/xw_yaml/blob/main/kube-flannel.yml

修改net-conf.json下面的网段为上面init pod-network-cidr的网段地址(必须正确否则会导致集群网络问题)

sed -i 's/10.244.0.0/192.168.0.0/' kube-flannel.yml

修改完安装插件,执行

kubectl apply -f kube-flannel.yml
kubectl get pods -n kube-system

安装calico插件(用于复杂网络环境)
下载yaml文件(如下载出现问题,可以拷贝下面网址内容,本地创建calico-3.9.2.yaml)

wget https://github.com/xuwei777/xw_yaml/blob/main/calico-3.9.2.yaml

修改配置文件的网段为上面init pod-network-cidr的网段地址(必须正确否则会导致集群网络问题)

sed -i 's/192.168.0.0/192.168.0.0/g' calico-3.9.2.yaml

修改完安装插件,执行

kubectl apply -f calico.yaml
kubectl get pod --all-namespaces -o wide

结尾

  • 感谢大家的耐心阅读,如有建议请私信或评论留言。
  • 如有收获,劳烦支持,关注、点赞、评论、收藏均可,博主会经常更新,与大家共同进步

以上是关于k8s集群安装部署实战详细手册的主要内容,如果未能解决你的问题,请参考以下文章

k8s dashboard安装部署实战详细手册

k8s dashboard安装部署实战详细手册

kubekey安装k8s集群详细手册

minio分布式集群安装部署实战详细手册

minio分布式集群安装部署实战详细手册

minio分布式集群安装部署实战详细手册