Kubernetes
Kubernetes 及其整个生态系统(工具、模块、插件等)均使用 Go 语言编写,从而构成一套面向 API、可高速运行的程序集合,这些程序文档精良、易于参与贡献或在其上构建应用程序。(百度百科)
那么 Kubernetes有什么用?其实很简单,Docker是部署我们的项目的容器,可是一个容器部署不够,如果在多个 Linux 服务器中使用Docker创建容器,这样就需要将多个 Linux 服务器的容器进行管理,Kubernetes就是管理 Docker容器 的。
搭建Kubernetes集群
那么我们正式搭建Kubernetes集群,什么是集群,就是多个 Linux 服务器。其实和Hadoop,elasticsearch,CDH集群差不多。比Hadoop,CDH的配置简单些。
我选用的机器是三台centos7主机,没钱买服务器。之前配置三台服务器sh免密码登录和Docker,这里不一一介绍了。
搭建之前,先去中文文档http://docs.kubernetes.org.cn/和英文文档https://kubernetes.io/docs参观下
第一步配源,加载下载速度,Installing kubeadm ,可以yum install ,下图就是官方文档的安装的命令
我就直接用vim创建吧,谷歌好像不好使,用阿里的
[root@node01 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.92.90 node01 192.168.92.91 node02 192.168.92.92 node03 [root@node01 ~]# vim /etc/yum.repos.d/kubernetes.repo ######### [kubernetes] name=Kubernetes baseurl=http://mirrors.aliyun测试数据/kubernetes/yum/repos/kubernetes-el7-x86_64 enabled=1 gpgcheck=0 repo_gpgcheck=0 gpgkey=http://mirrors.aliyun测试数据/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun测试数据/kubernetes/yum/doc/rpm-package-key.gpg [root@node01 ~]# yum install -y kubelet kubeadm kubectl 已加载插件:fastestmirror …………………… 已安装: ubeadm.x86_64 0:1.18.2-0 kubectl.x86_64 0:1.18.2-0 kubelet.x86_64 0:1.18.2-0 作为依赖被安装: conntrack-tools.x86_64 0:1.4.4-5.el7_7.2 cri-tools.x86_64 0:1.13.0-0 kubernetes-cni.x86_64 0:0.7.5-0 libnetfilter_cthelper.x86_64 0:1.0.0-10.el7_7.1 libnetfilter_cttimeout.x86_64 0:1.0.0-6.el7_7.1 libnetfilter_queue.x86_64 0:1.0.2-2.el7_2 socat.x86_64 0:1.7.3.2-2.el7 完毕! [root@node01 ~]# systemctl enable docker && systemctl start docker [root@node01 ~]# systemctl enable kubelet && systemctl start kubelet [root@node01 ~]# kubeadm ┌──────────────────────────────────────────────────────────┐ │ KUBEADM │ │ Easily bootstrap a secure Kubernetes cluster │ │ │ │ Please give us feedback at: │ │ https://github测试数据/kubernetes/kubeadm/issues │ └──────────────────────────────────────────────────────────┘
接下来就是kubeadm 帮我们部署的 Kubernetes ,我这里是最新的1.18.2,你可以不指定
[root@node01 ~]# kubeadm init --apiserver-advertise-address=192.168.92.90 --image-repository registry.aliyuncs测试数据/google_containers --kubernetes-version v1.18.2 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16
发现了报[ERROR Swap]: running with swap on is not supported. Please disable swap
那就把swap禁止,再次执行上面的命令
[root@node01 ~]# systemctl stop firewalld [root@node01 ~]# swapoff -a [root@node01 ~]# kubeadm init --apiserver-advertise-address=192.168.92.90 --image-repository registry.aliyuncs测试数据/google_containers --kubernetes-version v1.18.2 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16
当你看到kubeadm join 192.168.92.90:6443 --token niim2r.u8sgcz1vybxtfs68 就说明安装成功了。
在输出的时候叫我们运行以下命令,应该是创建环境变量的。
mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config
Kubernetes安装好后,你可以在/etc/kubernetes/查看生成的目录
[root@node01 ~]# ls /etc/kubernetes/ admin.conf controller-manager.conf kubelet.conf manifests pki scheduler.conf
kubectl get nodes命令可以查看当前的nodes节点。
[root@node01 ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION node01 NotReady master 4m12s v1.18.2
配置集群
下面就在node02和node03 重复上面的操作
[root@node02 ~]# kubeadm init --apiserver-advertise-address=192.168.92.91 --image-repository registry.aliyuncs测试数据/google_containers --kubernetes-version v1.18.2 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16 [root@node03 ~]# kubeadm init --apiserver-advertise-address=192.168.92.92 --image-repository registry.aliyuncs测试数据/google_containers --kubernetes-version v1.18.2 --service-cidr=10.1.0.0/16 --pod-network-cidr=10.244.0.0/16 [root@node01 ~]# kubectl get nodes NAME STATUS ROLES AGE VERSION node01 NotReady master 4m12s v1.18.2 node02 NotReady <none> 4m12s v1.18.2 node03 NotReady <none> 4m12s v1.18.2
出现上面的信息集群配置成功。
查看更多关于Centos7搭建Kubernetes集群的详细内容...