k8s集群安装部署实战详细手册
Posted Xd聊架构
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了k8s集群安装部署实战详细手册相关的知识,希望对你有一定的参考价值。
文章目录
一、k8s集群搭建
1.安装要求
- 3台以上机器,操作系统 CentOS7.7以上64位系统
- 具备docker环境(docker搭建参考:docker安装部署实战详细手册)
- 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多
- 集群中所有机器之间网络互通
- 可以访问外网,需要拉取镜像
ip | hostname |
---|---|
192.168.19.100 | master |
192.168.19.101 | node1 |
192.168.19.102 | node2 |
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集群安装部署实战详细手册的主要内容,如果未能解决你的问题,请参考以下文章