Kubeadm 部署k8s集群

一、准备工作

1.1、组件

组件:Harbor(私有Docker Hub)、Router

服务器操作系统:Centos7 +(内核3.0+,最好内核4.40+)

1.2、服务器

主机名 IP地址 角色 备注
ctos79-01 192.168.2.131 master 管理节点
ctos79-02 192.168.2.132 worker  
ctos79-03 192.168.2.133 worker  
ctos79-04 192.168.2.134 Harbor Docker hub

1.3、系统初始化

(1)安装依赖包

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

(2)设置防火墙为Iptables并设置空规则

# 关闭&禁用 firewalld
systemctl stop firewalld && systemctl disable firewalld
# 安装iptables并启用
yum -y install iptables-services && systemctl start iptables && systemctl enable iptables
# 设置空规则
iptables -F && service iptables save

(3)关闭SELINUX

# 关闭swap
swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
# 禁用SELINUX
setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

(4)调整内核参数

cat > kubernetes.conf <<EOF
# 开启网桥模式
net.bridge.bridge-ng-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
# 关闭ipv6
net.ipv6.conf.all.disable_ipv6=1
net.netfilter.nf_conntrack_max=2310720
EOF cp kubernetes.conf /etc/sysctl.d/kubernetes.conf
sysctl -p /etc/sysctl.d/kubernetes.conf

(5)调整系统时区

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

(6)关闭系统不需要的服务

systemctl stop postfix && systemctl disable postfix

(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 EOF systemctl restart systemd-journald

(8)升级系统内核为

# 查看操作系统内核版本
uname -a
# 或者执行
uname -r

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
# 安装完成后检查/boot/grub2/grub.cfg中对应内核menuentry中是否包含initrd6配置,如果没有,再安装一次
yum --enablerepo=elrepo-kernel install -y kernel-lt
# 更新引导加载器配置(设置开机从新内核启动)
grub2-set-default "CentOS Linux (4.4.182-1.el7.elrepo.x86_64) 7 (Core)"
# 注意: 要根据升级后的内核版本进行设置
grub2-set-default "CentOS Linux (5.4.275-1.el7.elrepo.x86_64) 7 (Core)"

升级内核之后需要重启服务器生效

(9)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

二、安装docker

# 安装命令
yum install -y yum-utils device-mapper-persistent-data lvm2
# 配置阿里的yum源
yum-config-manager \
--add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新并安装docker-ce
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

三、安装Kubeadm

主从配置

cat  >/etc/yum.repos.d/kubernetes.rep << EOF
[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

四、初始化主节点

kubeadm config print init-defaults > kubeadm-config.yaml

— 业精于勤荒于嬉,行成于思毁于随 —

Kubernetes - [03] 安装部署的更多相关文章

  1. Kubernetes专栏 | 安装部署(一)

    --随着云原生概念的普及,许多企业的业务纷纷上云,为了追求可靠性,稳定性,和弹性伸缩,提升资源利用率等需求.Kubernetes这个谷歌开源的容器编排平台已日益流行,被大家熟知和使用. 通常来说,Ku ...

  2. Kubernetes单机安装部署

    系统环境: Ubuntu 16.04.2 LTS 软件环境: Docker 1.12.6 Go 1.8.3 Etcd 3.1.8 Flannel 0.7.1 Kubernetes master 1.7 ...

  3. Kubernetes的安装部署

    前言:简述kubernetes(k8s)集群 k8s集群基本功能组件由master和node组成. master节点上主要有kube-apiserver.kube-scheduler.kube-con ...

  4. docker-19.03安装部署,阿里源加速

    docker所依赖的包环境,为了方便不报错,推荐执行 [root@liujunjun ~]# yum install -y yum-utils device-mapper-persistent-dat ...

  5. Kubeadm 安装部署 Kubernetes 集群

    阅读目录: 准备工作 部署 Master 管理节点 部署 Minion 工作节点 部署 Hello World 应用 安装 Dashboard 插件 安装 Heapster 插件 后记 相关文章:Ku ...

  6. kubernetes 集群的安装部署

    本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 首先kubernetes得官方文档我自己看着很乱,信息很少, ...

  7. 安装部署 Kubernetes 集群

    安装部署 Kubernetes 集群 阅读目录: 准备工作 部署 Master 管理节点 部署 Minion 工作节点 部署 Hello World 应用 安装 Dashboard 插件 安装 Hea ...

  8. Kubernetes集群部署关键知识总结

    Kubernetes集群部署需要安装的组件东西很多,过程复杂,对服务器环境要求很苛刻,最好是能连外网的环境下安装,有些组件还需要连google服务器下载,这一点一般很难满足,因此最好是能提前下载好准备 ...

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

    本文收录在容器技术学习系列文章总目录 1.kubernetes安装介绍 1.1 K8S架构图 1.2 K8S搭建安装示意图 1.3 安装kubernetes方法 1.3.1 方法1:使用kubeadm ...

  10. kubernetes安装部署-day01

    一.基础环境的准备: 1.1.安装docker: docker的官网是:https://www.docker.com/ 1.1.1.rpm包安装: 官方下载地址:https://download.do ...

随机推荐

  1. vue3版本下element-plus和antd-vue选哪个更好一些?

    Vue 3 发布后,各家第三方库开始陆续重构并支持 Vue 3 ,国内两大知名框架 Element Plus 和 Ant Design Vue 也相续发布新版支持 Vue 3.到底应该怎么选择呢? E ...

  2. PM-数据治理-数据资产管理

      在组织中,并非所有的数据都构成数据资产,数据资产是能够为组织产生价值的数据,数据资产的形成需要对数据进行主动管理并形成有效控制.   数据资产管理是规划.控制和提供数据及信息资产的一组业务职能,包 ...

  3. Gitlab:Restoring PostgreSQL database gitlabhq_production ... ERROR: must be owner of extension pg_trgm

    Restoring PostgreSQL database gitlabhq_production ... ERROR: must be owner of extension pg_trgm ERRO ...

  4. 百度地图各种控件:地图平移缩放控件NavigationControl、地图类型控件MapTypeControl

    注:代码复制即可用,标色代码为主要代码 百度地图提供了如下控件: 1.Control:控件的抽象基类,所有控件均继承此类的方法.属性.通过此类您可实现自定义控件. 2.NavigationContro ...

  5. [MySQL]数据库修复(Example:1146 Error )

    删除数据库自带的表,导致的异常问题修复方法如下 运行cmd,查询MYSQL所在位置 where mysql cd到MySQL安装目录的bin目录下 执行命令 mysql_upgrade -u root ...

  6. [python]邮件发送注意事项

    邮件格式 关于发信,需要遵循国际发信协议要求[4],例如RFC5322协议,避免因为格式不合法,导致被收信服务器拒收. 在二零二三年以前,在开发Python的邮箱发信接口时,对邮箱格式要求不高,主要还 ...

  7. .NET 9 增强 OpenAPI 规范

    在 .NET 9 的更新中,微软增强了原生 OpenAPI.这一变化表明 .NET 正在更加拥抱开放标准,同时让开发者体验更加轻松高效.本文将探讨为何进行这一更改.OpenAPI 的优势,以及如何在 ...

  8. Docker基础教程快速入门 Linux CentOS安装与使用Docker容器

    Docker 介绍 Docker 属于 Linux 容器的一种封装,提供简单易用的容器使用接口.它是目前最流行的 Linux 容器解决方案. Docker 将应用程序与该程序的依赖,打包在一个文件里面 ...

  9. [转]基于vue-router的matched实现面包屑功能

    原文链接:基于vue-router的matched实现面包屑功能

  10. 编译WorldWindJavav2.1.0中的ApplicationTemplate.java文件时有时报出“Exception in thread "main" java.lang.AbstractMethodError: javax.xml.parsers.DocumentBuilderFactory.setFeature(Ljava/lang/String;Z)V”错误的解决办法

    1 问题 编译WorldWindJavav2.1.0中的ApplicationTemplate.java文件时有时报出如下错误: Exception in thread "main" ...