搭建k8s集群

介绍使用 kubeadm 搭建 k8s 集群

部署方式

[图片]

准备工作

节点

一主三从
在这里插入图片描述

关闭防火墙

# 暂时关闭 
systemctl stop firewalld 

# 永久关闭
systemctl disable firewalld 

# 查看状态 
systemctl status firewalld 

关闭selinux

# 临时关闭 
setenforce 0  

# 永久关闭 
sed -i 's/enforcing/disabled/' /etc/selinux/config  

关闭swap

# 临时关闭 
swapoff -a 

# 永久关闭 
sed -ri 's/.*swap.*/#&/' /etc/fstab  

配置hostname

# 命令设置hostname 
hostnamectl set-hostname <hostname> 

# 编辑hostname 
vim /etc/hostname

配置hosts

# 添加hosts 
cat >> /etc/hosts << EOF 
x.x.x.11 k8s-master 
x.x.x.12 k8s-node1 
x.x.x.13 k8s-node2 
x.x.x.1 k8s-node3 
EOF 

将桥接的IPv4流量传递到iptables的链

cat > /etc/sysctl.d/k8s.conf << EOF 
net.bridge.bridge-nf-call-ip6tables = 1 
net.bridge.bridge-nf-call-iptables = 1 
EOF 

# 生效 
sysctl --system 

时间同步

yum install ntpdate -y 
ntpdate time.windows.com 

安装docker

下载

wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repo 

安装

yum -y install docker-ce 

启动

systemctl start docker 

配置镜像加速

vim /etc/docker/daemon.json 

{ 
  "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"], 
  "exec-opts": ["native.cgroupdriver=systemd"] 
} 

刷新配置

systemctl daemon-reload 

重启

systemctl restart docker 

查看配置是否生效

docker info 

添加阿里云软件源

cat > /etc/yum.repos.d/kubernetes.repo << EOF 
[kubernetes] 
name=Kubernetes 
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64 
enabled=1 
gpgcheck=0 
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 

在这里插入图片描述

安装kubeadm、kubelet、kubectl

安装

yum install -y kubelet-1.23.0 kubeadm-1.23.0 kubectl-1.23.0 

启动 start stop status

systemctl enable kubelet 

初始化k8s集群

主节点执行 初始化命令

kubeadm init \ 
--apiserver-advertise-address=x.x.x.11 \ 
--image-repository registry.aliyuncs.com/google_containers \ 
--kubernetes-version v1.23.0 \ 
--service-cidr=10.96.0.0/12 \ 
--pod-network-cidr=10.244.0.0/16 \ 
--ignore-preflight-errors=all 

apiserver-advertise-address 集群通告地址
image-repository 由于默认拉取镜像地址k8s.gcr.io国内无法访问,这里指定阿里云镜像仓库地址
kubernetes-version K8s版本,与上面安装的一致
service-cidr 集群内部虚拟网络,Pod统一访问入口
pod-network-cidr Pod网络,与下面部署的CNI网络组件yaml中保持一致

初始化完成后复制打印的join命令

kubeadm join 10.1.4.11:6443 --token v9853j.tugfmmpxi6rtaxmx \ 
--discovery-token-ca-cert-hash sha256:60b93914e551e654853250b99a06c6c1293e6879cd4031f4c639294c5d8e1338 

拷贝k8s认证文件

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

各个从节点执行join命令

kubeadm join 10.1.4.11:6443 --token v9853j.tugfmmpxi6rtaxmx \ 
--discovery-token-ca-cert-hash sha256:60b93914e551e654853250b99a06c6c1293e6879cd4031f4c639294c5d8e1338 

若token失效则在主节点重新创建

kubeadm token create --print-join-command 

在主节点查看节点

kubectl get nodes 

此时网络插件没有部署,各个节点处于NotReady状态。

calico

calico是一个纯三层的数据中心网络方案,是目前Kubernetes主流的网络方案

  • 主节点下载calico的yaml文件
wget https://docs.projectcalico.org/v3.14/manifests/calico.yaml 

在这里插入图片描述

  • 修改配置文件的CALICO_IPV4POOL_CIDR,与init的Pod网络保持一致
name: CALICO_IPV4POOL_CIDR 
value: "10.244.0.0/16" 
  • 部署calico
kubectl apply -f calico.yaml 
  • 查看pod
kubectl get pods -n kube-system 

所有calico的pod都running之后,所有节点也有准备就绪。

以上完成集群的搭建。

引用
https://blog.csdn.net/tiny_du/article/details/123823093

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值