使用kubeadm安装Kubernetes

(1)系统基础设置

  • 通过DNS完成各节点的主机名解析,少量时可以使用hosts文件进行解析;
  • 借助于NTP服务设置各节点时间精确同步
  • 关闭各节点iptables和firewalld,并确保禁止开机自启动
  • 各节点禁用SELinux
  • 各节点禁用所有Swap设备
  • 若要使用ipvs模型的proxy,各节点还需要载入ipvs相关的各模块
1.1 设置主机名

每台主机名必须都不一样,并保证所有节点之间可以通过hostname相互访问。

 # 查看主机名 hostname # 修改主机名 hostnamectl set-hostname HostName # 配置hosts文件,使其所有节点之间可以通过hostname相互访问 vim /etc/hosts     NodeIP    NodeName
1.2 设置时钟同步
 # 如果节点可直接访问互联网,可直接启动chronyd系统服务,并设置开机自启动     systemctl start chronyd.service     systemctl enable chronyd.service # 建议使用本地的时间服务器,尤其在节点数量众多时,存在可用的本地时间服务器时,修改节点时间服务器指向相应的主机即可,配置【/etc/chrony.conf】格式如下:     server  CHRONY-ServerName-OR-IP iburst #设置时区     timedatectl  list-timezones|grep -i Shanghai     timedatectl set-timezone Asia/Shanghai     timedatectl ?
1.3 安装依赖包
 # 注意jq在EPEL源中 # wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo yum install -y conntrack ipvsadm ipset jq sysstat curl iptables libseccomp
1.4 关闭防火墙、swap、重置iptables
 # 关闭防火墙 systemctl stop firewalld  && systemctl disable firewalld # 重置iptables iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT # 关闭swap # kubeadm默认会预先检查当前主机是否禁用了Swap设备,并在未禁用时强制终止部署过程。 swapoff -a sed -i ‘/swap/s/^\(.*\)$/#\1/g‘ /etc/fstab # 关闭SELinux setenforce 0 sed -i ‘s/^SELINUX=.*/SELINUX=disabled/g‘ /etc/selinux/config # 关闭dnsmasq(否则可能导致docker容器无法解析域名) service dnsmasq stop && systemctl disable dnsmasq
1.5 系统参数设置
  cat > /etc/sysctl.d/kubernetes.conf <<EOF net.bridge.bridge-nf-call-iptables=1 net.bridge.bridge-nf-call-ip6tables=1 net.ipv4.ip_forward=1 vm.swappiness=0 vm.overcommit_memory=1 vm.panic_on_oom=0 fs.inotify.max_user_watches=89100 EOF ## 生效文件 sysctl -p /etc/sysctl.d/kubernetes.conf ## 查看 sysctl -a |grep bridge

(2) 安装docker(所有节点)

根据kubernetes对docker版本的兼容测试情况选择对应docker版本。

 wget -O /etc/yum.repos.d/docker.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum install docker-ce systemctl enable docker ? # 配置iptables转发策略默认放行     # docker自1.13版起会自动设置iptables的FORWARD默认策略为DROP,这可能会影响kubernetes集群依赖的报文转发功能。 vim /usr/lib/systemd/system/docker.service     # 在【Service】标签下     Environment=“HTTPS_PROXY=http://www.ik8s.io:10070”     Environment=“NO_PROXY=127.0.0.0/8,192.168.141.0/24”     ExecStartPost=/usr/sbin/iptables -P FORWARD ACCEPT # 重启生效 systemctl daemon-reload systemctl start docker docker info

(3)安装必要工具(所有节点)

工具说明:

  • kubeadm:部署集群用的命令
  • kubelet:在集群中每台机器上都要运行的组件,负责管理Pod、容器的生命周期
  • kubectl:集群管理工具(可选,只要在控制集群的节点上安装即可)
 # 配置yum源  cat <<EOF > /etc/yum.repos.d/kubernetes.repo [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 ? # 安装工具 yum list kubeadm --showduplicates | sort -r #     注:--showduplicates  表示查看当前支持的版本 # 安装指定版本 version=‘1.14.5-0‘ yum install -y kubeadm-${version} kubelet-${version} kubectl-${version}  --disableexcludes=kubernetes # 配置kubelet,若未禁用Swap设备,则需要编辑kubelet的配置文件/etc/sysconfig/kubelt,设置其忽略Swap启用的状态错误。     KUBELET_EXTRA_ARGS=“--fail-swap-on=false” ? # 设置kubelet的cgroupdriver(kubelet的cgroupdriver默认为systemd,如果上面没有设置docker的exec-opts为systemd,这里就需要将kubelet的设置为cgroupfs) sed -i "s/cgroup-driver=systemd/cgroup-driver=cgroupfs/g" /etc/systemd/system/kubelet.service.d/10-kubeadm.conf ? # 启动kubelet systemctl enable kubelet && systemctl start kubelet
kubeadm的相关命令
 init    # 初始化集群     --image-repository string   ## 指定初始化集群时镜像仓库地址 join    # 加入集群 reset   # 重置集群 config  # 显示初始化集群相关默认配置     kubeadm config init-defaults # 显示初始化集群模式配置     kubeadm config images {list | pull}   # 显示/拉取初始化集群相关镜像     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 init命令支持两种初始化方式,一种是通过命令行选项传递关键的部署设定,另一种是基于yaml格式的专用配置文件,后一种允许用户自定义各个部署参数。

初始化集群
 # 可在执行kubeadm init之前提前拉取相关镜像 kubeadm config images list kubeadm config images pull kubeadm init --kubernetes-version="v1.14.5" --pod-network-cidr="10.244.0.0/16" --ignore-preflight-errors=Swap  --dry-run  --experimental-upload-certs ? # 说明 #     kubernetes-version  指定要部署的kubernetes程序版本,需要与当前的kubeadm支持的版本保持一致 #    pod-network-cidr 指定Pod网络网段,需跟网络插件一致 #    service-cidr    指定集群服务地址 #  添加 --experimental-upload-certs 参数可以在后续执行加入节点时自动分发证书文件
配置使用kubectl

kubectl是kube-apiserver的命令行客户端程序,实现了除系统部署之外的几乎全部的集群管理操作,是kubernetes管理员使用最多的命令之一。kubectl需经由API Server认证及授权后方能执行相应的管理操作。kubeadm部署的集群为其生成了一个具有管理员权限的认证配置文件 /etc/kubernetes/admin.conf,它可由kubectl通过默认的“$HOME/.kube/config”的路径进行加载。当然,用户也可在kubectl命令上使用--kubeconfig选项指定一个别的位置。

 mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config # 检查集群组件状态 kubectl get componentstatus ? # 查看当前kubectl配置 kubectl config view
部署网络插件

Kubernetes系统上Pod网络的实现依赖于第三方插件进行。常用有flannel、calico、canal和kube-router

 # flannel # github地址:github.com/coreos/flannel kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
安装Node
 # 先进行环境基础配置、 yum install kubelet kubeadm kubeadm join XXXX # 安装flannel kubectl create -f  https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ? # 现在node也使用kubectl mkdir ~/.kube cp Master:/etc/kubernetes/admin.conf Node:/root/.kube/config

原文地址:https://www.cnblogs.com/Binggo30/p/11444547.html

时间: 2024-10-10 00:07:31

使用kubeadm安装Kubernetes的相关文章

centos7使用kubeadm安装kubernetes 1.11版本多主高可用

centos7使用kubeadm安装kubernetes 1.11版本多主高可用 [TOC] kubernetes介绍要学习一个新的东西,先了解它是什么,熟悉基本概念会有很大帮助.以下是我学习时看过的一篇核心概念介绍.http://dockone.io/article/932 搭建Kubernetes集群环境有以下3种方式: minikubeMinikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用.不能用于生产环境.官方地址:ht

使用kubeadm安装Kubernetes 1.12

使用kubeadm安装Kubernetes 1.12 https://blog.frognew.com/2018/10/kubeadm-install-kubernetes-1.12.html 测试环境,aws us daas ,test0001,test00002 two Centos7.5 原文地址:https://www.cnblogs.com/oskb/p/10179019.html

使用kubeadm安装kubernetes v1.14.1

使用kubeadm安装kubernetes v1.14.1 一.环境准备 操作系统:Centos 7.5 ? ? 一台或多台运?行行着下列列系统的机器?: ? Ubuntu 16.04+ ? Debian 9 ? CentOS 7 ? RHEL 7 ? Fedora 25/26 (尽?力力服务) ? HypriotOS v1.0.1+ ? Container Linux (针对1800.6.0 版本测试) ? 每台机器? 2 GB 或更更多的 RAM (如果少于这个数字将会影响您应?用的运?行行

使用kubeadm 安装 kubernetes 1.15.1

简介: Kubernetes作为Google开源的容器运行平台,受到了大家的热捧.搭建一套完整的kubernetes平台,也成为试用这套平台必须迈过的坎儿.kubernetes1.5版本以及之前,安装还是相对比较方便的,官方就有通过yum源在centos7安装kubernetes.但是在kubernetes1.6之后,安装就比较繁琐了,需要证书各种认证,对于刚接触kubernetes的人来说很不友好. Copy docker : kubernetes依赖的容器运行时 kubelet: kuber

Kubernetes(K8s) 安装(使用kubeadm安装Kubernetes集群)

概述: 这篇文章是为了介绍使用kubeadm安装Kubernetes集群(可以用于生产级别).使用了Centos 7系统. PS: 篇幅有点长,但是比较详细.比较全面 一.Centos7 配置说明 1.1   Firewalld(防火墙) CentOS Linux 7 默认开起来防火墙服务(firewalld),而Kubernetes的Master与工作Node之间会有大量的网络通信,安全的做法是在防火墙上配置Kbernetes各组件(api-server.kubelet等等)需要相互通信的端口

kubeadm安装kubernetes v1.11.3 HA多主高可用并启用ipvs

环境介绍: 系统版本:CentOS 7.5 内核:4.18.7-1.el7.elrepo.x86_64 Kubernetes: v1.11.3 Docker-ce: 18.06 Keepalived保证apiserever服务器的IP高可用 Haproxy实现apiserver的负载均衡 master x3 && etcd x3 保证k8s集群可用性 192.168.1.1 master 192.168.1.2 master2 192.168.1.3 master3 192.168.1.4

kubeadm安装kubernetes 1.13.2多master高可用集群

1. 简介 Kubernetes v1.13版本发布后,kubeadm才正式进入GA,可以生产使用,用kubeadm部署kubernetes集群也是以后的发展趋势.目前Kubernetes的对应镜像仓库,在国内阿里云也有了镜像站点,使用kubeadm部署Kubernetes集群变得简单并且容易了很多,本文使用kubeadm带领大家快速部署Kubernetes v1.13.2版本. 注意:请不要把目光仅仅放在部署上,如果你是新手,推荐先熟悉用二进制文件部署后,再来学习用kubeadm部署.二进制文

kubeadm安装Kubernetes 1.15 实践

原地址参考github 一.环境准备(在全部设备上进行) 3 台 centos7.5 服务器,网络使用 Calico. IP地址 节点角色 CPU 内存 Hostname 10.0.1.45 master 2c 4G k8s-master 10.0.1.20 node 2c 4G node1 10.0.1.18 node 2c 4G node2 设置主机名 hostname. hostnamectl set-hostname k8s-master 对应上面表格的Hostname,node1与no

kubeadm安装Kubernetes 1.14最佳实践

Kubernetes作为容器编排工具,简化容器管理,提升工作效率而颇受青睐.国内阿里云部署Kubernetes的最简方法. 一.Kubernetes简介 Kubernetes(简称K8S)是开源的容器集群管理系统,可以实现容器集群的自动化部署.自动扩缩容.维护等功能.它既是一款容器编排工具,也是全新的基于容器技术的分布式架构领先方案.在Docker技术的基础上,为容器化的应用提供部署运行.资源调度.服务发现和动态伸缩等功能,提高了大规模容器集群管理的便捷性. K8S集群中有管理节点与工作节点两种

Centos 使用kubeadm安装Kubernetes 1.15.3

本来没打算搞这个文章的,第一里面有瑕疵(没搞定的地方),第二在我的Ubuntu 18 Kubernetes集群的安装和部署 以及Helm的安装 也有安装,第三 和社区的问文章比较雷同 https://www.kubernetes.org.cn/5551.html kubeadm是Kubernetes官方提供的用于快速安装Kubernetes集群的工具,伴随Kubernetes每个版本的发布都会同步更新,kubeadm会对集群配置方面的一些实践做调整,通过实验kubeadm可以学习到Kuberne