Kubernetes Kubeadm部署集群

Kubernetes高可用架构

Kubenetes 2个高可用核心 apiserver、etcd

  • etcd:集群数据中心,需要保持高可用,用于存放集群的配置信息、状态信息及Pod等信息。如果数据丢失集群将无法恢复。
  • kube-apiserver:集群核心,需要保持高可用,集群API接口,集群各组件通信的中枢。
  • kube-scheduler:Pod调度器,默认kubeadm安装时-leader-elect参数以及设置为true,保证master集群中只有一个kube-scheduler处于活动状态(内部自动选举)。
  • kube-controller-manager:资源对象自动化控制器,当资源对象状态与期望不同时,controller manager会努力让集群恢复期望状态,例如:当一个Pod死掉,controller manager会努力新建一个Pod来恢复对应资源期望的状态。默认kubeadm安装情况下-leader-elect参数已经设置为true,保证master集群中只有一个controller-manager处于活动状态。
  • kubelet:agent node注册到apiserver,并且定期汇报状态。
  • kube-proxy:负责service vip到endpoint pod的流量路由及负载均衡,老版本主要通过设置iptables规则来实现,1.9版本开始基于kube-proxy-lvs来实现。

Join Cluster

当master节点部署成功后,会在屏幕显示出node节点Join到cluster中的 token和ca证书的hash值。如果当时没记可以通过以下步骤来获取:

# kubeadm token create --print-join-command
kubeadm join 172.16.65.180:6443 --token se1mdt.qo8fgqz8qz82yiee --discovery-token-ca-cert-hash sha256:d8be590e432beb1529c831ea43800a22a5e9ff5bf9faac27d8003dd52904057f

获取token:

# kubeadm token create 
0p9ma2.9gb0cpl4tr2sbmza

获取ca hash:

# openssl x509 -in /etc/kubernetes/pki/ca.crt -noout -pubkey | openssl rsa -pubin -outform DER 2>/dev/null | sha256sum | cut -d' ' -f1
d8be590e432beb1529c831ea43800a22a5e9ff5bf9faac27d8003dd52904057f

参考文档:

https://www.kubernetes.org.cn/3536.html

https://www.kubernetes.org.cn/3808.html

https://www.kubernetes.org.cn/tags/kubeadm

原文地址:https://www.cnblogs.com/vincenshen/p/8859760.html