Kubernetes集群组件介绍
etcd:一个高可用的K/V键值对存储和服务发现系统
flannel: 实现夸主机的容器网络的通信
kube-apiserver: 提供kubernetes集群的API调用
kube-controller-manager: 确保集群服务
kube-scheduler: 调度容器,分配到Node
kubelet: 在Node节点上按照配置文件中定义的容器规格启动容器
kube-proxy: 提供网络代理服务
master节点包含以下服务:
- etcd
- kube-apiserver
- kube-scheduler
- kube-controller-manager
node节点包含以下服务:
- flannel
- kube-proxy
- kubelet
- docker
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
- Kubelet:运行在cluster所有节点上,负责启动POD和容器;
- Kubeadm:用于初始化cluster的一个工具;
- Kubectl:kubectl是kubenetes命令行工具,通过kubectl可以部署和管理应用,查看各种资源,创建,删除和更新组件;
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
本文由 Mr Gu 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Mar 16, 2022 at 03:47 pm