简单认识一下Kubernetes,并搭建自己的集群
发布时间:2021-08-17 18:55:09 所属栏目:云计算 来源:互联网
导读:Kubernetes是什么 Kubernetes是由Google在2014年开源的生产级别的容器编排系统,或者说是微服务和云原生平台。虽说14年才开源,但实际上Kubernetes是Google内部的容器编排系统Borg的开源版本,在Google内部已经用了十多年了。下面是一个关于Kubernetes的Logo
总的来说是为了性能考虑,所以就需要避免开启swap交换,Kubernetes希望所有的服务都不应该超过集群或节点CPU和内存的限制。
初始化Master节点
到这,准备工作就完成了,可以开始安装Kubernetes的Master节点了,登上要作为Master节点的机器。
设置HostName
老规矩,先上命令,再说为什么要设置。
sudo hostnamectl set-hostname master-node
自定义修改了主机名,在之后查看集群内节点时,每个节点的名字就不会显示Kubernetes自动生成的名字,便于查看和记忆。例如,在其他的Node节点你可以将master-node改为slave-node-1或worker-node-2,效果如下:
初始化集群
在机器上执行如下命令:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
然后,抱起吉他,等待命令执行完。
这里需要特别注意一下。这个命令执行完成之后,会打印一个有kubeadm join的命令,需要保存下来。
大概长这样:
kubeadm join你的IP地址:6443 --token 你的TOKEN --discovery-token-ca-cert-hash sha256:你的CA证书哈希
顾名思义,这个命令用于其他节点加入到集群中,而且Token是有时效性的,过期时间一般是86400000毫秒。
如果失效,就需要重新生成。如果你真的又没有保存,又失效了…我还是给你准备了两个补救措施。如果命令保存下来了,那么请直接跳过这两个补救措施。
token. 通过命令Kubeadm token list找回。
ca-cert. 执行命令
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
找回。
普通用户可执行
把下面的指令一把梭即可:
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
主要是,为了不那么麻烦,在控制节点上执行kubectl这类的命令时,不用每次都sudo。
安装网络通信插件
执行如下命令,安装网络插件Flannel。
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
可以看到,如果不安装Flannel,我们刚刚Init好的Master节点会处于NOT_READY的状态。安装好之后,可以通过命令kubectl get nodes来查看所有的节点的状态。也可以通过kubectl get pods --all-namespaces来查看当前集群中所有Pod的状态。这里需要注意的是,只有在master节点是READY,所有Pod的状态是RUNNING之后,才可以进行下一步。
为什么要装网络插件呢?
那是因为Kubernetes要求集群内的所有节点之间的Pod网络是互通的。换句话说,Flannel可以让集群内不同节点上的容器都有一个在当前集群内唯一的虚拟IP地址。这样以来,就可以实现,跨节点的Pod与Pod直接通信。
这样一来,将复杂的网络通信,简单的变成了两个IP地址之间的通信。这主要是通过虚拟二层网络实现的。看似是这个节点的Pod直接和另一个节点上的Pod进行了通信,最终还是通过节点的物理网卡流出的。
Slave节点加入集群
到此,一个单点的集群就已经搭建好了。现在我们要做的是,登录准备好的另一台(我只有两台,如果你有3台或者4天,把这个章节反复走几次就好了)服务器。
设置HostName
执行如下命令:
sudo hostnamectl set-hostname slave-node
因为当前节点不是Master了,所以主机名设置成了slave-node。
加入集群
重点来了,执行上一章节生成的kubeadm join命令即可。等待执行完毕之后,就可以在master节点上通过命令kubectl get nodes看到slave-node已经加入了集群。
对于Slave节点的操作就没了。
![]() (编辑:宿州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |