专栏首页毛利学PythonCentos7搭建Kubernetes集群

Centos7搭建Kubernetes集群

@Author:By Runsen

Kubernetes

Kubernetes 及其整个生态系统(工具、模块、插件等)均使用 Go 语言编写,从而构成一套面向 API、可高速运行的程序集合,这些程序文档精良、易于参与贡献或在其上构建应用程序。(百度百科)

那么 Kubernetes有什么用?其实很简单,Docker是部署我们的项目的容器,可是一个容器部署不够,如果在多个Linux服务器中使用Docker创建容器,这样就需要将多个Linux服务器的容器进行管理,Kubernetes就是管理Docker容器的。

搭建Kubernetes集群

那么我们正式搭建Kubernetes集群,什么是集群,就是多个Linux服务器。其实和Hadoop,elasticsearch,CDH集群差不多。比Hadoop,CDH的配置简单些。

我选用的机器是三台centos7主机,没钱买服务器。之前配置三台服务器sh免密码登录和Docker,这里不一一介绍了。

NodeName

IP地址

node01

192.168.92.90

node02

192.168.92.91

node03

192.168.92.92

搭建之前,先去中文文档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.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/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.com/kubernetes/kubeadm/issues             │
    └──────────────────────────────────────────────────────────┘

接下来就是kubeadm 帮我们部署的 Kubernetes ,我这里是最新的1.18.2,你可以不指定

[root@node01 ~]# kubeadm init --apiserver-advertise-address=192.168.92.90 --image-repository registry.aliyuncs.com/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.com/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.com/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.com/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

出现上面的信息集群配置成功。

本文分享自微信公众号 - Python之王(gh_70a22bfa8e3a),作者:小sen

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • LLinux操作系统网络管理,软件安装,进程管理

    在Linux中经常使用ifconfig,route和netstat查看网络状态,它们就是. net-tools工具,下面我来使用下。

    润森
  • 爬虫篇 | 快速入门selenium(十一)

    Selenium是一个用于web自动化测试的工具,Selenium测试直接运行在浏览器中,就好像一个真正的用户在操作一样。

    润森
  • 自从我会了Python中的PIL,发现了其实超级简单

    PIL全称是Python Image Library,顾名思义,是用来做图像处理的。

    润森
  • 实践-小细节Ⅶ

    所以网页的y 坐标是 0 ,但是在 iOS 11里面就是无法在 状态栏上显示,iOS11下的系统不会这样会占用 状态栏的位置

    進无尽
  • Python Python实现批量安装android apk包

    把.apk包放入apk目录下,然后进入到install_apk_once_many.py所在目录,运行程序:

    授客
  • 记一次作死玩了一条Linux禁令!

    禹都一只猫olei
  • kubernetes 二进制安装部署手册

    <img src="https://zhangshoufu-images.oss-cn-hangzhou.aliyuncs.com/imagesimage-20...

    张琳兮
  • Eclipse被卡死了或者失去响应了后分析根源的一个小技巧

    大家在使用Eclipse的过程中可能会偶尔遇到该IDE失去响应或者一直停留在某个步骤迟迟结束不了的情况。没有经验的朋友可能会用任务管理器强制结束Eclipse进...

    Jerry Wang
  • Web前端开发技术栈

    前端领域的发展非常迅猛,大前端的时代到来了,据说每隔12-24个月,前端的难度将增加一倍,从下面的技术栈就可以看出前端领域的丰富度和复杂度 核心概念 HTML ...

    dys
  • vim 7.4.160-1.el7版本存在编辑文件卡顿问题

    vim编辑一行的数据超过一定的列之后,就会出现明显卡顿问题。 文件内容有200列以上文本就会触发。

    党志强

扫码关注云+社区

领取腾讯云代金券