• 【K8S 概述&架构组件&核心概念 01】


    一、k8s概述

    1、谷歌14年开源的容器化集群管理系统

    2、使用k8s进行容器化应用部署

    3、使用k8s利于应用扩展

    4、k8s目标实施让部署容器化应用更加简洁和高效

    二、k8s集群架构组件

    Master(主控节点) 和node(工作节点)

    1、Master组件 -->不做具体的事情,只是管理调度node节点

    • apiserver:集群统一入口(比如:在集群中部署一个应用,需要通过apiserver进入到集群中) ,即:各个组件的协调者,已resrful方式交给etcd存储
    • scheduler:节点调度,选择node节点应用部署(例如:公交站调度各个公交车的运行)
    • controller-manager:处理集群中常规后台任务,一个资源对应一个控制器
    • ectd:存储系统,用于保存集群中相关的数据  (比如:apiserver的操作数据,controller-manager的创建数据都会在etcd里面保存)

    通俗理解:比如想部署一个订单的应用,通过scheduler找到一个node节点用于部署,controller-manager就会建一个对这个订单的controller(控制器)专门对这个订单进行管理,如果下面有一个购物车的应用那么就会建一个controller专门对其进行管理

     2、Worker node组件

    • kubelet:master派过去专门管理node节点的一个代表,管理本机容器的生命周期,创建,各种操作等等
    • kube-proxy:提供网络代理,实现负载均衡等操作

    三、k8s核心概念

    1、pod:

    • 最小部署单元
    • 一组容器的集合
    • 共享网络
    • 生命周期是短暂的(服务器重启之前的pod可能就不存在了)

    2、controller:    -->利用controller创建pod

    • 确保预期的pod副本数量
    • 无状态应用部署
    • 有状态应用部署
    • 确保所有的node运行同一个pod
    • 一次性任务和定时任务

    3、service

    • 定义一组pod的访问规则

    四、实际搭建k8s集群

    1、搭建k8s环境平台规划

    1)单master集群

    2)多master集群 (高可用)

    3、搭建k8s集群部署方式

    3.1、系统初始化

    第一种方式:kubeadm 方式

    # 关闭防火墙

    $ systemctl stop firewalld 
    $ systemctl disable firewalld
    # 关闭selinux
    sed -i 's/enforcing/disabled/' /etc/selinux/config  # 永久
    setenforce 0  # 临时
    # 关闭swap
    swapoff -a  # 临时
    sed -ri 's/.*swap.*/#&/' /etc/fstab    # 永久

    # 根据规划设置主机名

    hostnamectl set-hostname <hostname>

     # 在master添加hosts  -=-linux写入多行数据时,可以用cat >> /etc/hosts << EOF  EOF这样的方式

    cat >> /etc/hosts << EOF
    172.16.137.130  k8smaster    
    172.16.137.129  k8snode1
    172.16.137.128  k8snode2
    EOF

     # 将桥接的IPv4流量传递到iptables的链

    cat > /etc/sysctl.d/k8s.conf << EOF
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables = 1
    EOF
    sysctl --system  # 生效 

     # 时间同步

    yum install ntpdate -y
    ntpdate time.windows.com

    上面的这种在centos7可以成功,但是在centos8内无法实现

    centos8时间同步由chrony来实现

    vim /etc/chrony.conf
    
    注释掉
    pool 2.centos.pool.ntp.org iburst
    加入新的的时间服务器
    server 210.72.145.44 iburst  #210.72.145.44本机IP地址
    server ntp.aliyun.com iburst

    重启服务
    systemctl restart chronyd.service
    此时时间已经与网络时间同步
    设置开机自启
    systemctl enable chronyd.service

    3.2、所有节点安装Docker/kubeadm/kubelet

    Kubernetes默认CRI(容器运行时)为Docker,因此先安装Docker

    1)安装Docker

    2)添加阿里云YUM软件源

    #设置仓库地址

    cat > /etc/docker/daemon.json << EOF 
    { 
        "registry-mirrors": ["https://b9pmyelo.mirror.aliyuncs.com"] 
    
    }
    EOF
    
    然后需要重启docker
    systemctl restart docker

    验证修改成功没有:终端输入:docker info

     包含这个就说明成功了

    #添加yum源

    cat > /etc/yum.repos.d/kubernetes.repo << EOF 
    [kubernetes] 
    name=Kubernetes
    baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
    enabled=1
    gpgcheck=0
    repo_gpgcheck=0
    gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
    https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg 
    EOF

    #安装 kubeadm,kubelet 和 kubectl

    $ yum install -y kubelet kubeadm kubectl 
    $ systemctl enable kubelet

    第一种方式在centos8.4系统安装很容易失败,后面的步骤就不继续了

    第二种方式:kubernetes 集群搭建(二进制方式)

  • 相关阅读:
    创业失败,是应该坚持还是给别人打工?
    在三四线小城市投资3至8万,做什么小生意好?
    在小县城做什么生意好?
    在农村创业有哪些优势和机会?
    听说做餐饮的都在赔钱,为什么新店却越开越多?
    现在做什么行业好一点?
    手头有五万左右,想做个小生意,有什么值得推荐的?
    可以给我个创业的建议吗?
    如果你现在月工资纯入7千左右,30多岁有家庭但前途迷茫,你会独自创业打拼吗?
    JeeSite 4.0 简化业务逻辑层开发
  • 原文地址:https://www.cnblogs.com/frankruby/p/16474757.html
Copyright © 2020-2023  润新知