zoukankan      html  css  js  c++  java
  • 搭建kubernetes集群

    什么是Kubernetes?

    Kubernetes(k8s)是自动化容器操作的开源平台,这些操作包括部署,调度和节点集群间扩展。如果你曾经用过Docker容器技术部署容器,那么可以将Docker看成Kubernetes内部使用的低级别组件。Kubernetes不仅仅支持Docker,还支持Rocket,这是另一种容器技术。使用Kubernetes可以:

    • 自动化容器的部署和复制
    • 随时扩展或收缩容器规模
    • 将容器组织成组,并且提供容器间的负载均衡
    • 很容易地升级应用程序容器的新版本
    • 提供容器弹性

    部署

    第一步:环境说明

    192.168.1.13    master
    192.168.1.14    node-01
    192.168.1.15    node-02
    
    

    第二步:关闭防火墙等(all)

    # 1.关闭防火墙
    systemctl stop firewalld && systemctl disable firewalld​
    
    # 2.关闭selinux
    setenforce 0
    vim /etc/selinux/config
    SELINUX=enforcing改为SELINUX=disabled,保存后退出
    
    # 3.关闭交换分区
    swapoff -a
    sed -i 's/.*swap.*/#&/' /etc/fstab
    
    # 4.iptables设置
    iptables -P FORWARD ACCEPT
    

    第三步:安装docker(all)

    # 1.安装
    yum install docker -y
    
    # 2.启动和默认启动
    systemctl start docker && systemctl enable docker
    
    # 3.配置
    cat > /etc/docker/daemon.json << EOF
    {
      "registry-mirrors": ["https://阿里个人加速网址.mirror.aliyuncs.com"],
      "exec-opts":["native.cgroupdriver=systemd"],
      "graph": "/new-path/docker" # 该路径必须存在
    }
    EOF
    

    第四步:启动docker时配置iptables(all)

    vim /etc/systemd/system/docker.service
    [Service]下面添加
    ExecStartPost=/sbin/iptables -I FORWARD -s 0.0.0.0/0 -j ACCEPT
    

    第五步:设置host(all)

    # 在不同的服务器上运行
    hostnamectl set-hostname master
    hostnamectl set-hostname node-01
    hostnamectl set-hostname node-02
    
    # 所有的服务器都运行
    cat >> /etc/hosts << EOF
    192.168.1.13    master
    192.168.1.14    node-01
    192.168.1.15    node-02
    EOF
    

    第六步:设置yum源(all)

    cat > /etc/yum.repos.d/docker.repo <<EOF
    [docker-repo]
    name=Docker Repository
    baseurl=http://mirrors.aliyun.com/docker-engine/yum/repo/main/centos/7
    enabled=1
    gpgcheck=0
    EOF
    
    cat > /etc/sysctl.d/k8s.conf << EOF
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    net.ipv4.ip_forward = 1
    EOF
    
    cat > /etc/yum.repos.d/kubernetes.repo << EOF
    [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
    EOF

    第七步:安装kubelet kubeadm kubectl(all)

    # 1.安装
    yum install -y kubelet kubeadm kubectl docker
    
    # 2.启动
    systemctl enable kubelet && systemctl start kubelet
    

    第八步:初始化master节点(master)

    kubeadm init --image-repository=registry.aliyuncs.com/google_containers --apiserver-advertise-address 192.168.1.13 --pod-network-cidr=10.244.0.0/16 --kubernetes-version=v1.18.0
    
    #--image-repository:下载镜像的地址
    #--apiserver-advertise-address:apiserver的地址,一般是本机IP
    #--pod-network-cidr:容器间通信的虚拟IP网段
    #--kubernetes-version:kubernetes版本

    第九步:安装flannel网络(all)

    # 1.添加IP和hostname的对应关系
    cat >> /etc/hosts << EOF
    151.101.76.133  raw.githubusercontent.com
    EOF
    
    # 2.下载并启动flannel
    kubectl create -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

    第十步:添加node节点

    # 1.查看jion命令
    kubeadm token create --print-join-command
    
    # 2.将查询的jion命令直接在node节点运行即可
    

    第十一步:检查集群是否安装成功

    # 使用nginx进行测试
    [root@master-01 nginx]# cat nginx.yaml
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nginx-deployment
      labels:
        app: nginx
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          containers:
          - name: nginx
            image: nginx:latest
            ports:
            - containerPort: 80
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: nginx-service
      labels:
        app: nginx
    spec:
      ports:
      - port: 88
        targetPort: 80
      selector:
        app: nginx
      type: NodePort
    

    查看Pod和Service是否成功运行:

    在浏览器中访问192.168.1.13:32325,看见如下界面,表示集群搭建成功:

           

  • 相关阅读:
    Spring Security【一】 ------ 前后端分离开发
    mybatis 使用mybatis-plus-generator进行代码自动生成
    VuejsApp简介
    BeetleX之Vue ElementUI生成工具
    BeetleX数据分析中间服务V3
    vuejs集成echarts的一些问题
    BeetleX使用bootstrap5开发SPA应用
    BeetleX大数据之产品分析服务
    小试牛刀ElasticSearch大数据聚合统计
    在windows 10的ubuntu系统上如何使用dd命令写u盘?
  • 原文地址:https://www.cnblogs.com/chusiyong/p/12838976.html
Copyright © 2011-2022 走看看