安装k8s集群

一、 环境说明

二、 初始化系统(master、node1、node2)

  1. cat /etc/hosts

    192.168.1.136 k8s-master01
    192.168.1.134 k8s-node1
    192.168.1.137 k8s-node2
    192.168.1.25 hub.testwang.com

  2. 安装基础依赖包

    yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git

  3. 设置防火墙为 Iptables 并设置空规则

    systemctl stop firewalld && systemctl disable firewalld

    yum -y install iptables-services && systemctl start iptables && systemctl enable iptables
    && iptables -F && service iptables save

  4. 关闭selinux

    swapoff -a && sed -i ‘/ swap / s/^\(.*\)$/#\1/g‘ /etc/fstab

    setenforce 0 && sed -i ‘s/^SELINUX=.*/SELINUX=disabled/‘ /etc/selinux/config

  5.  优化内核参数

    modprobe br_netfilter 

    

    cat > kubernetes.conf <<EOF

    net.bridge.bridge-nf-call-iptables=1

    net.bridge.bridge-nf-call-ip6tables=1
    net.ipv4.ip_forward=1
    net.ipv4.tcp_tw_recycle=0
    vm.swappiness=0 #禁止使用 swap 空间,只有当系统 OOM 时才允许使用它
    vm.overcommit_memory=1 # 不检查物理内存是否够用
    vm.panic_on_oom=0 #开启 OOM
    fs.inotify.max_user_instances=8192
    fs.inotify.max_user_watches=1048576
    fs.file-max=52706963
    fs.nr_open=52706963
    net.ipv6.conf.all.disable_ipv6=1
    net.netfilter.nf_conntrack_max=2310720

    EOF

  6. 调整系统时区

    

  # 设置系统时区为 中国/上海
  timedatectl set-timezone Asia/Shanghai
  # 将当前的 UTC 时间写入硬件时钟
  timedatectl set-local-rtc 0
  # 重启依赖于系统时间的服务
  systemctl restart rsyslog
  systemctl restart crond

  关闭不需要的服务
    systemctl stop postfix.service && systemctl disable postfix.service

  7. 设置 rsyslogd 和 systemd journald

    

    mkdir /var/log/journal
    mkdir /etc/systemd/journald.conf.d

    cat > /etc/systemd/journald.conf.d/99-prophet.conf <<EOF
    [Journal]
    # 持久化保存到磁盘
    Storage=persistent
    # 压缩历史日志
    Compress=yes
    SyncIntervalSec=5m
    RateLimitInterval=30s
    RateLimitBurst=1000
    # 最大占用空间 10G
    SystemMaxUse=10G
    # 单日志文件最大 200M
    SystemMaxFileSize=200M
    # 日志保存时间 2 周
    MaxRetentionSec=2week
    # 不将日志转发到 syslog
    ForwardToSyslog=no

  8. 升级系统内核为 4.44

  CentOS 7.x 系统自带的 3.10.x 内核存在一些 Bugs,导致运行的 Docker、Kubernetes 不稳定,例如: rpm -Uvh
  http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
  rpm -Uvh http://www.elrepo.org/elrepo-release-7.0

三、 安装docker 和 k8s

  1. kube-proxy开启ipvs的前置条件

  modprobe br_netfilter

  cat > /etc/sysconfig/modules/ipvs.modules <<EOF
  #!/bin/bash
  modprobe -- ip_vs
  modprobe -- ip_vs_rr
  modprobe -- ip_vs_wrr
  modprobe -- ip_vs_sh
  modprobe -- nf_conntrack_ipv4
  EOF
  chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconfig/modules/ipvs.modules &&lsmod | grep -e ip_vs -e nf_conntrack_ipv4 
  2. 安装 docker 

    

  yum install -y yum-utils device-mapper-persistent-data lvm2
  yum-config-manager \
  --add-repo \
  http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
  yum update -y && yum install -y docker-ce
  ## 创建 /etc/docker 目录
  mkdir /etc/docker
  # 配置 daemon.
  cat > /etc/docker/daemon.json <<EOF
  {
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
  "max-size": "100m"
  }
  }
  EOF
  mkdir -p /etc/systemd/system/docker.service.d
  # 重启docker服务
  systemctl daemon-reload && systemctl restart docker && systemctl enable docker

  3.  安装 Kubeadm (主从配置) 

  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 -y install kubeadm-1.15.1 kubectl-1.15.1 kubelet-1.15.1
  systemctl enable kubelet.service

  4 配置初始化配置文件

  cat kubeadm-config.yaml  

apiVersion: kubeadm.k8s.io/v1beta2
bootstrapTokens:
- groups:
  - system:bootstrappers:kubeadm:default-node-token
  token: abcdef.0123456789abcdef
  ttl: 24h0m0s
  usages:
  - signing
  - authentication
kind: InitConfiguration
localAPIEndpoint:
  advertiseAddress: 192.168.1.136
  bindPort: 6443
nodeRegistration:
  criSocket: /var/run/dockershim.sock
  name: k8s-master01
  taints:
  - effect: NoSchedule
    key: node-role.kubernetes.io/master
---
apiServer:
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta2
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns:
  type: CoreDNS
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: k8s.gcr.io
kind: ClusterConfiguration
kubernetesVersion: v1.15.3
networking:
  dnsDomain: cluster.local
  podSubnet: "10.244.0.0/16"
  serviceSubnet: 10.96.0.0/12
scheduler: {}
---
apiVersion: kubeproxy.config.k8s.io/v1alpha1
kind: KubeProxyConfiguration
featureGates:
  SupportIPVSProxyMode: true
mode: ipvs

原文地址:https://www.cnblogs.com/Robi-9662/p/12614566.html

时间: 2024-10-02 01:27:06

安装k8s集群的相关文章

使用kubeadm安装k8s集群故障处理三则

最近在作安装k8s集群,测试了几种方法,最终觉得用kubeadm应该最规范. 限于公司特别的网络情况,其安装比网上不能访问google的情况还要艰难. 慢慢积累经验吧. 今天遇到的三则故障记下来作参考. 当然,所有方法都是看了log输出后,从网上搜索的方法. =============== Q,如何让kubeadm在安装过程中不联网? A:记得在kubeadm init过程中增加参数 --kubernetes-version=v1.7.0 Q,kubelet cgroup driver参数不一致

kubeadm快速安装k8s集群(1master+2node)

```本文档参考阿良老师的文档, 结合自己的问题,做了部分修改,如有侵权,联系删除! kubeadm是官方推出的安装k8s集群方式中的一种,另外一种是二进制安装 主要通过master端的kubeadm init 和node端的kubeadm join 一. 环境准备 部署K8s集群机器需要满足以下几个条件:使用VMware创建三台主机,要求如下:1.系统CentOS7.52.停掉swap,关闭防火墙和selinux3.机器之间相互可以ping通,且可以连接外部网络4.硬件预计需要内存2G加硬盘2

Centos 安装k8s 集群

本教程是在VM中搭建K8s 所以第一步骤先配置虚拟机的ip 和上网情况详细参考https://www.cnblogs.com/chongyao/p/9209527.html 开始搭建K8s集群 两台机器一台master 一台node master:192.168.211.150 node1: 192.168.211.151 master 和node 都需要进行的准备工作 #修改hostname #master 对应master node 对应node hostnamectl set-hostna

用kubeadm安装k8s集群

1.准备 1.1系统配置 在安装之前,需要先做如下准备.三台CentOS主机如下: 配置yum源(使用腾讯云的) 替换之前先备份旧配置 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup centos各版本的源配置列表 centos5 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.cloud.tencent.com/repo/

二进制安装K8S集群

centos linux7.5 cat > /etc/hosts << EOF 192.168.199.221 master 192.168.199.222 node1 192.168.199.223 node2 EOF 1.关闭防火墙.关闭selinux.关闭swapoff -a systemctl stop firewalldselinux=disabledswapoff -a 2.安装docker 1)常用方法 a.配置yum源 阿里镜像源 yum-config-manager -

安装k8s集群(亲测)

先安装一台虚拟机,然后进行克隆,因为前面的步骤都是一样的,具体代码如下: Last login: Mon Nov 25 00:40:34 2019 from 192.168.180.1 ##安装依赖包 [[email protected] ~]# yum install -y conntrack ntpdate ntp ipvsadm ipset jq iptables curl sysstat libseccomp wget vim net-tools git 已加载插件:fastestmir

kubernetes系列03—kubeadm安装部署K8S集群

1.kubernetes安装介绍 1.1 K8S架构图 1.2 K8S搭建安装示意图 1.3 安装kubernetes方法 1.3.1 方法1:使用kubeadm 安装kubernetes(本文演示的就是此方法) 优点:你只要安装kubeadm即可:kubeadm会帮你自动部署安装K8S集群:如:初始化K8S集群.配置各个插件的证书认证.部署集群网络等.安装简易. 缺点:不是自己一步一步安装,可能对K8S的理解不会那么深:并且有那一部分有问题,自己不好修正. 1.3.2 方法2:二进制安装部署k

centos7 k8s集群部署

安装k8s集群前期准备:网络环境:节点 主机名 ipMaster k8s_master 192.168.3.216Node1 k8s_node1 192.168.3.217Node2 k8s_node2 192.168.3.219 centos7版本:[[email protected]_master ~]# cat /etc/redhat-releaseCentOS Linux release 7.4.1708 (Core) 关闭firewalld:systemctl stop firewal

k8s集群Canal的网络控制 原

1 简介 直接上干货 public class DispatcherServlet extends HttpServlet { private Properties contextConfigProperties = new Properties(); private List<String> classNames = new ArrayList<>(); private Map<String, Object> ioc = new HashMap<String,