美文网首页
【K8S 系列】k8s 学习二,kubernetes 核心概念及

【K8S 系列】k8s 学习二,kubernetes 核心概念及

作者: 阿兵云原生 | 来源:发表于2022-01-01 09:58 被阅读0次

    咱们再来回顾一下 K8S 集群架构的组件,在网上找一张集群架构图说明一波

    image

    1、master 组件

    • apiserver

    集群的统一入口,restful 的方式,最后交给 etcd 存储

    • shcheduler

    节点调度,选择 node 节点进行应用部署

    • controller-manager

    处理集群中常规后台任务,一个资源对应一个控制器

    • etcd

    存储系统,用于保存集群相关的数据

    2、node 组件,工作节点

    • kubelet

    master 排到 node 节点代表,管理本机的容器

    • kube-proxy

    提供网络代理,负载均衡等操作

    k8s 核心概念

    1、Pod

    • 最小部署的逻辑单元
    • 是一组容器的集合
    • 共享网络
    • 生命周期短暂

    2、controller

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

    3、service

    • 定义一组 Pod 的访问规则

    Kubernetes 安装方式:

    • 使用官方提供的 minikube
    • 使用 kubeadmin 进行部署,k8s的部署工具,跑在 k8s 里面,这个使用起来相对简单

    kubeadmin 提供 kubeadmin init 和 kubeadmin join,用于快速部署 k8s 集群

    官网地址为:https://kubernetes.io/docs/reference/setup-tools/kubeadm/

    • 自己使用 kubernetes 二进制方式安装部署 (这种部署方式,我们学习的时候一定要走这个步骤,一步一步的去搭建,才能遇到很多问题,进而解决他,熟悉他)

    官方提供的 minikube

    minikube

    image

    点击 Launch Terminal ,可以查看到如下界面

    image-20210814141641989

    官方给我们提供的 minikube ,版本是 v1.8.1

    系统是 Ubuntu 18.04

    CPU 2 核

    内存 2 G

    磁盘 145 G 左右

    Kubernetes 版本 v1.17.6

    Docker 版本 19.03.6

    咱们可以使用 kubectl get pods -n kube-system 查看一下 pod 节点

    image-20210814142527561

    kubeadmin 进行部署

    使用 kubeadmin 来进行部署,相对使用二进制来部署就会简单容易一些,先来规划一下部署方案

    平台规划

    单 master 搭建方式

    image

    多 master 搭建方式

    image

    kubeadmin 开始部署

    使用 kubeadmin 部署 k8s 环境,通过如下 2 条指令即可完成 kubernetes 的部署:

    • kubeadm init

    创建一个 master 节点

    • kubeadm join <master 节点的IP 和端口>

    将 node 节点加入到集群中

    测试环境硬件要求

    master 节点: 2 核,2G,磁盘 20 G

    node 节点:4 核,8G,磁盘 80 G

    • 一台或者多台机器,操作系统自选,可以是 ubuntu ,可以是 centos
    • 硬件配置如上
    • 集群中所有的节点网络互通
    • 可以访问外网,可以拉取镜像
    • 禁止 swap 分区

    先来安装一下 kubectl

    官方提供了 4 种方式来安装 kubecrl

    咱们直接使用第 1 种:

    1、用如下命令下载最新的 kubectl 版本

    curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
    

    2、下载 kubectl 校验和文件

    curl -LO "https://dl.k8s.io/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl.sha256"
    

    3、验证 kubectl 的可执行文件

    echo "$(<kubectl.sha256) kubectl" | sha256sum --check

    # echo "$(<kubectl.sha256) kubectl" | sha256sum --check
    kubectl: OK
    

    出现上述情况,为验证通过

    4、安装 kubectl

    sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
    

    5、查看咱们安装的版本

    kubectl version --client

    # kubectl version --client
    Client Version: version.Info{Major:"1", Minor:"22", GitVersion:"v1.22.0", GitCommit:"c2b5237ccd9c0f1d600d3072634ca66cefdf272f", GitTreeState:"clean", BuildDate:"2021-08-04T18:03:20Z", GoVersion:"go1.16.6", Compiler:"gc", Platform:"linux/amd64"}
    
    • GitVersion

    git 的版本是 v1.22.0

    • GoVersion

    go 的版本是 1.16.6

    • BuildDate

    构建时间为 2021-08-04T18:03 ,还算挺新

    配置一下 kubectl 自动补全功能

    kubectl 的自动补全功能依赖 bash-completion,因此需要我们安装他

    1、安装 bash-completion

    apt-get install bash-completion

    2、启动 kubectl 自动补全功能

    ~/.bashrc 中导入(source)补全脚本

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

    将补全脚本添加到目录 /etc/bash_completion.d

    kubectl completion bash >/etc/bash_completion.d/kubectl

    如果 kubectl 有关联的别名,你可以扩展 shell 补全来适配此别名

    echo 'alias k=kubectl' >>~/.bashrc
    echo 'complete -F __start_kubectl k' >>~/.bashrc
    

    kubernetes 的安装部署方式步骤相对有点多,这个必须要自己一步一步的实践,否则是学不到东西的,大家可以多在官网上摸摸鱼

    https://kubernetes.io/docs/tasks/tools/install-kubectl-linux/

    image

    参考资料:

    kubernetes docs

    欢迎点赞,关注,收藏

    朋友们,你的支持和鼓励,是我坚持分享,提高质量的动力

    image

    好了,本次就到这里

    技术是开放的,我们的心态,更应是开放的。拥抱变化,向阳而生,努力向前行。

    我是小魔童哪吒,欢迎点赞关注收藏,下次见~

    相关文章

      网友评论

          本文标题:【K8S 系列】k8s 学习二,kubernetes 核心概念及

          本文链接:https://www.haomeiwen.com/subject/fteoqrtx.html