基于kubeadm部署kubernetes集群(一)

一、主机规划

角色名称    配置    域名    IP地址
master    2C8G/4G    master.example.com    192.168.0.1
node1    2C4G/2G    node1.example.com    192.168.0.2
node2    2C4G/2G    node2.example.com    192.168.0.3

二、软件要求

操作系统版本: CentOS Linux release 7.3.1611 (Core)

Docker版本:1.13.1, build 07f3374/1.13.1

Kubernetes版本: v1.13.1

三、部署步骤

1.systemctl stop firewalld && systemctl disable firewalld  #关闭防火墙,关闭开机自动开启防火墙2.vim /etc/selinux/config  修改第6行,SELINUX=disabled  3.swapoff -a  #关闭swap设置   将/etc/fstab文件中所有设置为swap的设备关闭4.yes | cp /etc/fstab /etc/fstab_bak  #备份/etc/fstab5.grep -v swap /etc/fstab_bak > /etc/fstab   #重写/etc/fstab6.vim /etc/hosts   #更改hosts文件,配置域名

  192.168.33.9 master.example.com  192.168.33.10 node1.example.com  192.168.33.11 node2.example.com7.安装docker  yum -y install docker  systemctl start docker && systemctl enable docker    #启动docker并设置开机启动  #启动时可能会报错:Job for docker.service failed because。。。参考另一篇博客点击此处即可查看8.配置阿里云镜像源  vim /etc/yum.repos.d/k8s.repo    [kubernetes]      name=kubernetes repo

       baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/gpgcheck=0

 9.安装kubelet kubeadm kubectl

  #这里需要注意,如果你直接运行指令yum -y install kubelet kubeadm kubectl,这里将会自动为你下载最新版本,我们这里采用低版本(1.13.0)进行安装
  yum -y install kubelet-1.13.0 kubeadm-1.13.0 kubernetes-cni-0.6.0 kubectl-1.13.0
  systemctl enable kubelet && systemctl start kubelet
 10.执行脚本远程拉取镜像(脚本附在最后)

11.master节点-配置kubectl、flannel网络(注意这里的ip地址用本机ip)

  kubeadm init --kubernetes-version=v1.13.1 --apiserver-advertise-address 192.168.0.9 --pod-network-cidr=10.244.0.0/16

  注意这里完成操作后会有这样一段提示:

    You can now join any number of machines by running the following on each node

       as root:

      kubeadm join 192.168.0.9:6443 --token vatur3.j0y4md12rz4h04mp --discovery-token-ca-cert-hash sha256:f684729944a449a5ab20d40a664b1b3fca99a8d            33c09fb5db8e1ce125c6e4632
  将kubeadm这段指令记好,随后添加节点需要用到

12.配置kubectl

  echo "export KUBECONFIG=/etc/kubernetes/admin.conf" >> ~/.bash_profile

  source ~/.bash_profile  

13.

  curl https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml -o kube-flannel.yml
  docker tag k8s.gcr.io/flannel:v0.10.0-amd64 quay.io/coreos/flannel:v0.11.0-amd64  #更改镜像名
  kubectl apply -f kube-flannel.yml
 14.执行 kubectl get nodes

  此时进行确认,若master节点 not ready,重启docker即可:

  systemctl restart docker

  kubectl get nodes
  NAME           STATUS    ROLES    AGE    VERSION
  master.example.com    Ready    master    25m    v1.13.0

15.此时master节点已初步部署完成

###远程拉取镜像,tag镜像py脚本

#coding:utf8
import os

S_registry = ‘registry.cn-beijing.aliyuncs.com/imcto/‘
#S_registry = ‘registry.cn-shenzhen.aliyuncs.com/cp_m/‘
D_registry = ‘k8s.gcr.io/‘

master_image = [‘kube-apiserver:v1.13.1‘,‘kube-controller-manager:v1.13.1‘,
                ‘kube-scheduler:v1.13.1‘,‘kube-proxy:v1.13.1‘,‘pause:3.1‘,
                ‘etcd:3.2.24‘,‘coredns:1.2.6‘,‘flannel:v0.10.0-amd64‘]
#master_image = [‘flannel:v0.10.0-amd64‘]

#下载镜像
def PullImage(registry,images):
    print("-共%s个镜像" %(len( images),))
    index = 1
    for image in images:
        print("开始下载第[%d]个镜像---> [%s]" %(index, image))
        cmd = "docker pull " + registry + image
        os.system(cmd)
        print("done!")
        index += 1

#更改tag
def TagImage(sregistry,dregistry,images):
    print("一共%s个镜像" %(len(images),))
    index = 1
    for image in images :
        print("开始tag第[%d]个镜像---> [%s] ---> [%s]" %(index, sregistry+image, dregistry+image))
        cmd = "docker tag " + sregistry+image + " " + dregistry + image
        os. system(cmd)
        print("done!")
        index += 1

#run
if __name__==‘__main__‘:
   # PullImage(S_registry , master_image)
    TagImage(S_registry, D_registry, master_image)

原文地址:https://www.cnblogs.com/weisunblog/p/12275711.html

时间: 2024-11-03 07:41:43

基于kubeadm部署kubernetes集群(一)的相关文章

使用kubeadm部署kubernetes集群

使用kubeadm部署kubernetes集群 通过docker,我们可以在单个主机上快速部署各个应用,但是实际的生产环境里,不会单单存在一台主机,这就需要用到docker集群管理工具了,本文将简单介绍使用docker集群管理工具kubernetes进行集群部署. 1 环境规划与准备 本次搭建使用了三台主机,其环境信息如下:| 节点功能 | 主机名 | IP || ------|:------:|-------:|| master | master |192.168.1.11 || slave1

Kubeadm部署Kubernetes集群

Kubeadm部署Kubernetes1.14.1集群 原理kubeadm做为集群安装的"最佳实践"工具,目标是通过必要的步骤来提供一个最小可用的集群运行环境.它会启动集群的基本组件以及必要的附属组件,至于为集群提供更丰富功能(比如监控,度量)的组件,不在其安装部署的范围.在环境节点符合其基本要求的前提下,kubeadm只需要两条基本命令便可以快捷的将一套集群部署起来.这两条命令分别是: kubeadm init:初始化集群并启动master相关组件,在计划用做master的节点上执行

Kubernetes学习之路(一)之Kubeadm部署K8S集群

一个星期会超过多少阅读量呢??发布一篇,看看是否重新在51上写学习博文,有老铁支持嘛?? 使用kubeadm部署集群 节点名称 ip地址 部署说明 Pod 网段 Service网段 系统说明 k8s-master 192.168.56.11 docker.kubeadm.kubectl.kubelet 10.244.0.0/16 10.96.0.0/12 Centos 7.4 k8s-node01 192.168.56.12 docker.kubeadm.kubelet 10.244.0.0/1

Kubernetes/3.使用Kubeadm部署k8s集群

使用Kubeadm部署k8s集群 kubeadm是一个提供了"kubeadm init"和"kubeadm join"最佳实践命令,且用于快速构建一个kubernetes集群的工具,你可以使用此工具快速构建一个kubernetes学习环境.通过本章节的学习,你将能够使用kubeadm工具,成功构建出一个基础的kubernetes集群环境. 环境准备 Hosts文件准备 Docker环境配置 其他准备工作 使用Kubeadm部署k8s集群 参考文档 备注 环境准备 i

使用kubeadm部署k8s集群01-初始化

使用kubeadm部署k8s集群01-初始化 2018/1/3 节点配置 master x3 OS version: centos7 swapoff ### 阿里云默认:off hosts ### 每个节点上配置: [[email protected] ~]# cat /etc/hosts ### k8s master @envDev 10.10.9.67 tvm-00 10.10.9.68 tvm-01 10.10.9.69 tvm-02 Docker version: latest(17.0

使用kubeadm部署k8s集群03-扩容kube-apiserver到3节点

使用kubeadm部署k8s集群03-扩容kube-apiserver到3节点 2018/1/3 扩容 kube-apiserver 到 3 节点 配置 kube-apiserver.yaml 分析 kube-apiserver 依赖的证书 为新节点生成专属证书 下发证书到对应的节点 确认每个节点的 apiserver 是否处于 Running 状态 配置 kube-apiserver.yaml ### 拷贝原 master 上的配置: [[email protected] ~]# mkdir

使用kubeadm部署k8s集群02-配置etcd高可用

使用kubeadm部署k8s集群02-配置etcd高可用 2018/1/4 配置 etcd 高可用 新建一个 2 节点的 etcd cluster 查看 etcd 的状态 迁移原来 master 节点上的 etcd 数据到上面新建的 etcd cluster 中 切换 kube-apiserver 使用新的 etcd endpoint 地址 清理掉原来的单节点 etcd 服务 重建一个 etcd 服务,加入新集群 部署新的 etcd 节点 更新另外2个节点的 etcd.yaml 配置 新建一个

Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)

概述: 这篇文章是为了介绍使用kubeadm安装Kubernetes集群(可以用于生产级别).使用了Centos 7系统. PS: 篇幅有点长,但是比较详细.比较全面 一.Centos7 配置说明 1.1   Firewalld(防火墙) CentOS Linux 7 默认开起来防火墙服务(firewalld),而Kubernetes的Master与工作Node之间会有大量的网络通信,安全的做法是在防火墙上配置Kbernetes各组件(api-server.kubelet等等)需要相互通信的端口

CentOS7部署Kubernetes集群

CentOS7部署Kubernetes集群 简介 Kubernetes是什么? Kubernetes一个用于容器集群的自动化部署.扩容以及运维的开源平台. 通过Kubernetes,你可以快速有效地响应用户需求: a.快速而有预期地部署你的应用 b.极速地扩展你的应用 c.无缝对接新的应用功能 d.节省资源,优化硬件资源的使用 我们希望培育出一个组件及工具的生态,帮助大家减轻在公有云及私有云上运行应用的负担. Kubernetes特点: a.可移植: 支持公有云,私有云,混合云,多重云(mult