基于kubeadm部署工具部署k8s 集群文档

in docker with 0 comment

Kubernetes集群组件介绍

etcd:一个高可用的K/V键值对存储和服务发现系统
flannel: 实现夸主机的容器网络的通信
kube-apiserver: 提供kubernetes集群的API调用
kube-controller-manager: 确保集群服务
kube-scheduler: 调度容器,分配到Node
kubelet: 在Node节点上按照配置文件中定义的容器规格启动容器
kube-proxy: 提供网络代理服务

master节点包含以下服务:

node节点包含以下服务:

kubeadm部署工具部署集群步骤

本集群系统环境为:

10.2.110.99 k8smaster
10.2.110.26 k8snode1
10.2.110.177 k8snode2

1.关闭防火墙及常见的系统初始化此处跳过
2.各节点/etc/hosts信息绑定
3.时间同步保持一致。
4.开启网络模块

lsmod | grep br_netfilter
modprobe br_netfilter

5.设置网桥参数

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

#使以上配置生效
sysctl --system

k8s集群所有节点安装必备软件及环境

1.安装 Docker

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

配置docker仓库加速器

cat > /etc/docker/daemon.json <<EOF
{
"registry-mirrors": ["https://registry.docker-cn.com"]
}
EOF

#设置开机启动并启动服务

systemctl enable docker.service
systemctl start docker.service 

2.添加k8s的阿里云Yum源

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

集群节点软件安装

yum install kubelet-1.19.4 kubeadm-1.19.4 kubectl-1.19.4 -y

#启动kubelet服务
systemctl enable kubelet.service

查看安装的版本: kubelet --version

Master节点执行集群初始化

kubeadm init --apiserver-advertise-address=10.2.110.99 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.19.4 --service-cidr=192.96.0.0/16 --pod-network-cidr=192.16.0.0/16

#执行结果如下:

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

You can now join any number of control-plane nodes by copying certificate authorities 
and service account keys on each node and then running the following as root:

  kubeadm join 10.2.110.99:6443 --token kaopu8.16gi6090sy6z2b4s \
    --discovery-token-ca-cert-hash sha256:ddd95161e9e0398f21744aeec3d7553cc027fb39180d12726fb9b6ebed90f0a0 \
    --control-plane       

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 10.2.110.99:6443 --token kaopu8.16gi6090sy6z2b4s \
    --discovery-token-ca-cert-hash sha256:ddd95161e9e0398f21744aeec3d7553cc027fb39180d12726fb9b6ebed90f0a0

注意:

service-cidr 的选取不能和PodCIDR及本机网络有重叠或者冲突,一般可以选择一个本机网络和PodCIDR都没有用到的私网地址段,比如PODCIDR使用10.244.0.0/16, 那么service cidr可以选择10.96.0.0/12,网络无重叠冲突即可;

创建相关配置目录

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

Node节点加入集群操作

向集群添加新节点,在node节点上执行命令就是kubeadm init最后输出的kubeadm join命令:

kubeadm join 10.2.110.99:6443 --token kaopu8.16gi6090sy6z2b4s \
    --discovery-token-ca-cert-hash sha256:ddd95161e9e0398f21744aeec3d7553cc027fb39180d12726fb9b6ebed90f0a0

Master节点部署网络插件

#下载kube-flannel.yml文件
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

#应用kube-flannel.yml文件得到运行时容器

kubectl apply -f kube-flannel.yml #在master机器上执行

查看集群中节点状态

kubectl get nodes
#节点状态为NotReady时则等待集群准备就绪
#节点状态为Ready时,则表示集群已经是完成状态。

至此我们的k8s环境就搭建好了。

参考文档:https://www.cnblogs.com/tangy1/p/14925216.html

Responses