环境说明:

节点类型     主机名    管理ip

master          master   192.168.2.10

nodes            node1    192.168.2.11

nodes            node2    192.168.2.12

podSubnet: 10.244.0.0/16

serviceSubnet: 10.96.0.0/16

一、基础环境配置

1、主机名修改

2、关闭防火墙,修改selinux为disable

3、/etc/hosts文件解析

4、关闭swap,或者删除swap分区

5、NTP时间同步

6、Master节点和node节点免密登录

7、配置yum源

  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

二、master节点部署

1、安装docker、kubelet、kubeadm、kubectl软件

  yum install -y docker kubelet kubeadm kubectl

  systemctl restart docker.service

  systemctl enable docker.service

  systemctl status docker.service

  systemctl enable kubelet.service

2、修改kubeadm镜像源

  查看kubeadm需要的镜像,默认需要访问Google,国内一般无法访问,需要修改镜像下载地址

  kubeadm config images list

  kubeadm config print init-defaults > kubeadm.conf

  将kubeadm.conf配置文件中的imageRepository: k8s.gcr.io改为新的地址,如imageRepository:registry.aliyuncs.com/google_containers,或imageRepository: docker.io/mirrorgooglecontainers

  将podSubnet: ''改为需要的地址段,比如podSubnet: 10.244.0.0/16

3、下载需要的镜像

  kubeadm config images list --config kubeadm.conf

  kubeadm config images pull --config kubeadm.conf

4、设置bridge-nf-call-iptables

  echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables

  echo 1 > /proc/sys/net/bridge/bridge-nf-call-ip6tables

注意:如果不设置,下步执行命令会报错提示

5、初始化kubeadm

  kubeadm init --config kubeadm.conf

  初始化完成会有如下信息输出:

  ---------------------------------------------------------------------------------------------------

  Your Kubernetes control-plane has initialized successfully!

  To start using your cluster, you need to run the following as a regular user:

      mkdir -p $HOME/.kube

     sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

     sudo chown $(id -u):$(id -g) $HOME/.kube/config

  You should now deploy a pod network to the cluster.

  Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:

      https://kubernetes.io/docs/concepts/cluster-administration/addons/

  Then you can join any number of worker nodes by running the following on each as root:

    kubeadm join 192.168.2.10:6443 --token abcdef.0123456789abcdef  --discovery-token-ca-cert-hash sha256:06e6c6592362baa34e15ea169b43d16b57361110546b9c5d65b585a8ad09cdd5

  ---------------------------------------------------------------------------------------------------------

6、初始化完成执行如下命令

  mkdir -p $HOME/.kube

  sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

  sudo chown $(id -u):$(id -g) $HOME/.kube/config

7、设置命令自动补全

  echo "source <(kubectl completion bash)" >> ~/.bashrc

三、node节点操作

1、安装docker、kubelet、kubeadm、kubectl软件

  yum install -y docker kubelet kubeadm kubectl

  systemctl restart docker.service

  systemctl enable docker.service

  systemctl status docker.service

2、设置bridge-nf-call-iptables

  echo 1 > /proc/sys/net/bridge/bridge-nf-call-iptables

  echo 1 > /proc/sys/net/bridge/bridge-nf-call-ip6tables

3、node节点接入集群

  kubeadm join 192.168.2.10:6443 --token abcdef.0123456789abcdef  --discovery-token-ca-cert-hash sha256:06e6c6592362baa34e15ea169b43d16b57361110546b9c5d65b585a8ad09cdd5

四、master节点部署flannel网络

1、master节点部署flannel网络

  wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

  kubectl apply -f kube-flannel.yml

2、查看节点信息

  [root@master ~]# kubectl get nodes

  NAME         STATUS     ROLES     AGE   VERSION

  master        Ready          master      3h6m   v1.14.1

  node1        Ready          <none>     125m   v1.14.1

  node2        NotReady    <none>      115m   v1.14.1

3、修改node节点的role属性

  kubectl edit nodes node1

  将node-role.kubernetes.io/node: ""写在label字段里

  kubectl get pods -n kube-system -o wide

kubeadm进行K8S集群部署的更多相关文章

  1. 用kubeadm构建k8s集群部署

    一.环境 三台centos机器 二.软件及容器准备 1.安装docker环境 本例安装 docker-ce版本,repo源为docker-ce.repo文件,拷贝到 /etc/yum.repos.d下 ...

  2. 使用Kubeadm创建k8s集群之部署规划(三十)

    前言 上一篇我们讲述了使用Kubectl管理k8s集群,那么接下来,我们将使用kubeadm来启动k8s集群. 部署k8s集群存在一定的挑战,尤其是部署高可用的k8s集群更是颇为复杂(后续会讲).因此 ...

  3. 使用Kubeadm创建k8s集群之节点部署(三十一)

    前言 本篇部署教程将讲述k8s集群的节点(master和工作节点)部署,请先按照上一篇教程完成节点的准备.本篇教程中的操作全部使用脚本完成,并且对于某些情况(比如镜像拉取问题)还提供了多种解决方案.不 ...

  4. kubeadm搭建K8s集群及Pod初体验

    基于Kubeadm 搭建K8s集群: 通过上一篇博客,我们已经基本了解了 k8s 的基本概念,也许你现在还是有些模糊,说真的我也是很模糊的.只有不断地操作去熟练,强化自己对他的认知,才能提升境界. 我 ...

  5. 二进制方法-部署k8s集群部署1.18版本

    二进制方法-部署k8s集群部署1.18版本 1. 前置知识点 1.1 生产环境可部署kubernetes集群的两种方式 目前生产部署Kubernetes集群主要有两种方式 kuberadm Kubea ...

  6. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录

    0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.感谢 在此感谢.net ...

  7. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之集群部署环境规划(一)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.环境规划 软件 版本 ...

  8. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之自签TLS证书及Etcd集群部署(二)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.服务器设置 1.把每一 ...

  9. Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列之flanneld网络介绍及部署(三)

    0.前言 整体架构目录:ASP.NET Core分布式项目实战-目录 k8s架构目录:Kubernetes(k8s)集群部署(k8s企业级Docker容器集群管理)系列目录 一.flanneld介绍 ...

随机推荐

  1. Scala学习十八——高级类型

    一.本章要点 单例类型可用于方法串接和带对象参数的方法 类型投影对所有外部类的对象都包含了其他内部类的实例 类型别名给类型指定一个短小的名称 结构类型等效于”鸭子类型“ 存在类型为泛型的通配参数提供了 ...

  2. 关于SpringMVC映射模型视图的几点小事

    一.SpringMVC概述 SpringMVC为展现层提供的基于MVC设计理念的优秀的Web框架,是目前最主流的MVC框架之一. SpringMVC通过一套MVC注解,让POJO成为处理请求的控制器, ...

  3. spring cloud EurekaClient 多网卡 ip 配置 和 源码分析(转)

    https://blog.csdn.net/qq_30062125/article/details/83856655 1.前言对于spring cloud,各个服务实例需要注册到Eureka注册中心. ...

  4. TVM图优化(以Op Fusion为例)

    首先给出一个TVM 相关的介绍,这个是Tianqi Chen演讲在OSDI18上用的PPThttps://files.cnblogs.com/files/jourluohua/Tianqi-Chen- ...

  5. html图片自定义裁剪大小

    该插件后端使用ASP.NET MVC实现图片存储 该插件适用于需要固定显示缩略图片的文章列表! 演示地址:http://hhcf.top:8099/Cropper/Index 源码下载:https:/ ...

  6. 【Day4】3.urllib模块使用案例

    import urllib.request as ur ret = ur.urlopen('https://edu.csdn.net/').read() with open('edu.html','w ...

  7. Win10系统C盘空间不足怎么安全清理?

    我们在使用电脑时,系统经常会产生许多垃圾文件,占用磁盘存储空间.在Win10系统中,我们可以通过清理系统盘的临时文件来释放一些存储空间.下面好系统U盘启动就来告诉你具体的方法步骤. Win10系统C盘 ...

  8. Django安装和介绍

    在CMD和pycharm的安装方法. 先说CMD的安装方法 1,使用pip3 install django 2,进入c:python\Scripts 3,django-admin.exe startp ...

  9. 关于JPype报FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/jvm'错误的解决

    部署到线上的项目正常运行一年,今天早上突然报FileNotFoundError: [Errno 2] No such file or directory: '/usr/lib/jvm'错误. JPyp ...

  10. 生成漂亮报告的Go语言代码检查工具

    上篇文章,老司机给各位同学介绍了Go语言的静态代码测试“三板斧”以及Go语言的testing类库. “三板斧”简洁明了,但是缺点也很明显,命令行执行,命令行输出.适合研发攻城狮看,不适合交给领导过目. ...