使用 Kind 在 5 分钟内快速部署一个 Kubernetes 高可用集群( 三 )

$ kubectl get po -n kube-systemNAME READY STATUS RESTARTS AGEcoredns-86c58d9df4-6g66f 1/1 Running 0 21mcoredns-86c58d9df4-pqcc4 1/1 Running 0 21metcd-my-cluster-control-plane 1/1 Running 0 20mkube-apiserver-my-cluster-control-plane 1/1 Running 0 20mkube-controller-manager-my-cluster-control-plane 1/1 Running 0 20mkube-proxy-cjgnt 1/1 Running 0 21mkube-scheduler-my-cluster-control-plane 1/1 Running 0 21mweave-net-ls2v8 2/2 Running 1 21m从上面的输出结果,可以看到单节点的 Kubernetes已经搭建成功 。单节点集群默认方式启动的节点类型是control-plane,该节点包含了所有的组件 。这些组件分别是:2*CorednsEtcdApi-ServerController-ManagerKube-ProxySheduler和网络插件Weave,目前默认使用的网络插件也是Weave
 
创建多节点的集群默认安装的集群只部署了一个控制节点,如果需要部署多节点集群,我们可以通过配置文件的方式来创建多个容器 。这样就可以达到模拟多个节点目的,并以这些节点来构建一个多节点的 Kubernetes集群 。

  1. 创建多节点 Kubernetes 集群配置文件
Kind在创建集群的时候,支持通过--config参数传递配置文件给Kind,配置文件可修改的内容主要有 role 和 节点使用的镜像 。
$ vim my-cluster-multi-node.yaml# 一共两个节点,一个主节点,一个从节点 。kind: ClusterapiVersion: kind.sigs.k8s.io/v1alpha3nodes:- role: control-plane- role: worker
  1. 创建多节点 Kubernetes 集群
配置文件创建完成后,就可以使用下面的命令来完成多节点 Kubernetes集群搭建 。
$ kind create cluster --config my-cluster-multi-node.yaml --name my-cluster-multi-nodeCreating cluster "my-cluster-multi-node" ... ? Ensuring node image (kindest/node:v1.15.3) ? Preparing nodes ? Creating kubeadm config ? Starting control-plane ? ? Joining worker nodesCluster creation complete. You can now use the cluster with:export KUBECONFIG="$(kind get kubeconfig-path --name="my-cluster-multi-node")"kubectl cluster-info和上面创建的单节点集群一样,我们同样根据上面命令执行完后,输出的提示信息进行操作来验证一下集群是否部署成功 。
$ kubectl get nodesNAME STATUS ROLES AGE VERSIONmy-cluster-multi-node-control-plane Ready master 3m20s v1.15.3my-cluster-multi-node-worker Ready <none> 3m8s v1.15.3$ kubectl get po -n kube-systemNAME READY STATUS RESTARTS AGEcoredns-86c58d9df4-cnqhc 1/1 Running 0 5m29scoredns-86c58d9df4-hn9mv 1/1 Running 0 5m29setcd-my-cluster-multi-node-control-plane 1/1 Running 0 4m24skube-apiserver-my-cluster-multi-node-control-plane 1/1 Running 0 4m17skube-controller-manager-my-cluster-multi-node-control-plane 1/1 Running 0 4m21skube-proxy-8t4xt 1/1 Running 0 5m27skube-proxy-skd5v 1/1 Running 0 5m29skube-scheduler-my-cluster-multi-node-control-plane 1/1 Running 0 4m18sweave-net-nmfq2 2/2 Running 1 5m27sweave-net-srdfw 2/2 Running 0 5m29s 
创建高可用 Kubernetes 集群Kind也支持搭建高可用的Kubernetes集群,创建方式和多节点集群类似,也是通过配置文件来实现 。
  1. 创建高可用 Kubernetes 集群配置文件
$ vim my-cluster-ha.yaml# 一共六个节点,三个 control-plane 节点,三个 workers 节点kind: ClusterapiVersion: kind.sigs.k8s.io/v1alpha3kubeadmConfigPatches:- | apiVersion: kubeadm.k8s.io/v1beta2 kind: ClusterConfiguration metadata: name: config networking: serviceSubnet: 10.0.0.0/16 imageRepository: registry.aliyuncs.com/google_containers nodeRegistration: kubeletExtraArgs: pod-infra-container-image: registry.aliyuncs.com/google_containers/pause:3.1- | apiVersion: kubeadm.k8s.io/v1beta2 kind: InitConfiguration metadata: name: config networking: serviceSubnet: 10.0.0.0/16 imageRepository: reg


推荐阅读