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命令,再次进行安装。

  • 相关阅读:
    10 个深恶痛绝的 Java 异常。。
    为什么公司宁愿 25K 重新招人,也不给你加到 20K?原因太现实……
    推荐一款代码神器,代码量至少省一半!
    Spring Cloud Greenwich 正式发布,Hystrix 即将寿终正寝。。
    hdu 3853 LOOPS(概率 dp 期望)
    hdu 5245 Joyful(期望的计算,好题)
    hdu 4336 Card Collector(期望 dp 状态压缩)
    hdu 4405 Aeroplane chess(概率+dp)
    hdu 5036 Explosion(概率期望+bitset)
    hdu 5033 Building (单调栈 或 暴力枚举 )
  • 原文地址:https://www.cnblogs.com/mayyan/p/13858462.html
Copyright © 2011-2022 走看看