zoukankan      html  css  js  c++  java
  • k8s安装

     Kubernetes需要容器运行时(Container Runtime Interface,CRI)的 支持,目前官方支持的容器运行时包括:Docker、Containerd、CRI-O和 frakti。

    安装条件:

    本节以Docker作为容器 运行环境,推荐版本为Docker CE 18.09。

    宿主机操作系统以CentOS Linux 7为例,使用Systemd系统完成对 Kubernetes服务的配置。

    1、而Kubernetes的Master与工作Node之间会有大量的网络通 信,安全的做法是在防火墙上配置各组件需要相互通信的端口号,具体 要配置的端口号详见2.8节各服务启动参数中监听的端口号。在安全的 内部网络环境中可以关闭防火墙服务

    # systemctl disable firewalld
    # systemctl stop firewalld
     
    2、另外,建议在主机上禁用SELinux,让容器可以读取主机文件系 统:
    # setenforce  0
    或修改系统文件/etc/sysconfig/selinux,将SELINUX=enforcing修改 成SELINUX=disabled,然后重启Linux。
     
    1、开始安装:
    安装kubeadm和相关工具(需要提前安装好docker
     
    首先配置yum源,官方yum源的地址为 https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64。如果 无法访问官方yum源的地址,则也可以使用国内的一个yum源,地址为 http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/, yum源的配置文件/ etc/yum.repos.d/kubernetes.repo的内容如下:

     然后运行yum install命令安装并启动kubeadm和相关工具:

    #yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes

    #systemctl enable kubelet && systemctl start kubelet

    2、kubeadm config

    kubeadm将配置文件以ConfigMap的形式保存到集群之中, 便于后续的查询和升级工作。kubeadm config子命令提供了对这一组功 能的支持:

    ◎ kubeadm config upload from-file:由配置文件上传到集群中生 成ConfigMap。

    ◎ kubeadm config upload from-flags:由配置参数生成 ConfigMap。

    ◎ kubeadm config view:查看当前集群中的配置值。

    ◎ kubeadm config print init-defaults:输出kubeadm init默认参数文 件的内容。

    ◎ kubeadm config print join-defaults:输出kubeadm join默认参数 文件的内容。

    ◎ kubeadm config migrate:在新旧版本之间进行配置转换。

    ◎ kubeadm config images list:列出所需的镜像列表。

    ◎ kubeadm config images pull:拉取镜像到本地。

    例如,执行kubeadm config print init-defaults,可以取得默认的初始 化参数文件:

    3、下载Kubernetes的相关镜像

    为了从国内的镜像托管站点获得镜像加速支持,建议修改Docker的 配置文件,增加Registry Mirror参数,将镜像配置写入配置参数中,例 如echo '{"registry-mirrors":["https://registry.docker-cn.com"]}' > /etc/docker/daemon.json,然后重启Docker服务。

     在镜像下载完成之后,就可以进行安装了

    4、运行kubeadm init命令安装Master

    至此,准备工作已就绪,执行kubeadm init命令即可一键安装 Kubernetes的Master。

    在开始之前需要注意:kubeadm的安装过程不涉及网络插件 (CNI)的初始化,因此kubeadm初步安装完成的集群不具备网络功 能,任何Pod包括自带的CoreDNS都无法正常工作。而网络插件的安装 往往对kubeadm init命令的参数有一定的要求。例如,安装Calico插件时 需要指定--pod-network-cidr=192.168.0.0/16,详情可参考 https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/#podnetwork。

    接下来使用kubeadm init命令,使用前面创建的配置文件进行集群 控制面的初始化

    kubectl  init --config=init-config.yaml

     初始化成功后,复制这一段token

    按照提示执行下面的命令,复制配置文件到普通用户的home目录 下:

     这样就在Master上安装了Kubernetes,但在集群内还是没有可用的 工作Node,并缺乏对容器网络的配置。

     5、安装Node,加入集群

    node节点也需要安装docker

    对于新节点的添加,系统准备和Kubernetes yum源的配置过程是一 致的,在Node主机上执行下面的安装过程。 (1)安装kubeadm和相关工具:

    yum install -y kubelet kubeadm  --disableexcludes=kubernetes

    systemctl enable kubelet && systemctl start kubelet

    为kubeadm命令生成配置文件。创建文件join-config.yaml,内 容如下:(手动创建一个如下文件)

     其中,apiServerEndpoint的值来自Master服务器的地址,token和 tlsBootstrapToken的值就来自于使用kubeadm init安装Master的最后一行 提示信息。

    执行kubeadm join命令,将本Node加入集群:

     

     6、安装网络插件

    执行kubectl get nodes命令,会发现Kubernetes提示Master为 NotReady状态,这是因为还没有安装CNI网络插件:

     下面根据kubeadm的提示安装CNI网络插件。对于CNI网络插件,可 以有许多选择,请参考https://kubernetes.io/docs/setup/independent/createcluster-kubeadm/#pod-network的说明。

     7、验证Kubernetes集群是否安装完成。

    执行下面的命令,验证Kubernetes集群的相关Pod是否都正常创建并 运行:

     如果发现有状态错误的Pod,则可以执行kubectl --namespace=kubesystem describe pod<pod_name>来查看错误原因,常见的错误原因是镜 像没有下载完成。

    至此,通过kubeadm工具就实现了Kubernetes集群的快速搭建。

    如 果安装失败,则可以执行kubeadm reset命令将主机恢复原状,重新执行 kubeadm init命令,再次进行安装。

  • 相关阅读:
    linux进程管理类
    linux关机重启指令
    linux分区及磁盘挂载
    linux的运行级别
    property
    访问限制机制
    类的组合与封装
    继承与派生
    logging模块
    re模块
  • 原文地址:https://www.cnblogs.com/mayyan/p/13858462.html
Copyright © 2011-2022 走看看