目录

  • 整体环境
    • 安装后续用到的包
    • firewalld
    • iptables
    • selinux
    • swap
    • 调整时区
    • 修改内核参数
    • 开启IPVS
  • docker ce配置
  • kubeadm、kubelet、kubectl
  • 安装镜像
  • Master节点初始化
    • 安装CNI网络插件calico
  • Node节点添加
  • 参考

注意:除了Master节点初始化及Node节点添加分别在Master节点和Node节点执行外,其余所有命令均在所有节点执行

整体环境

一台master节点,多台node节点。采用了Centos 7,有网络,互相可以ping通。

安装后续用到的包

yum install -y yum-utils conntrack ntpdate ntp ipvsadm ipset jq sysstat libseccomp

firewalld

关闭firewalld

systemctl stop firewalld && systemctl disable firewalld

iptables

安装iptables,设置空表

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

selinux

关闭selinux

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

swap

关闭分区交换

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

调整时区

调整为上海,保持集群所有节点时间一致

timedatectl set-timezone Asia/Shanghai
timedatectl set-local-rtc 0
#重启依赖于系统时间的服务
systemctl restart rsyslog
systemctl restart crond

修改内核参数

修改网桥等内核参数

cat > /etc/sysctl.d/k8s.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空间,只有当系统00M时才允许使用它
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=52786963
fs.nr_open=52706963
net.ipv6.conf.all.disable_ipv6=1
net.netfilter.nf_conntrack_max=2310720
EOF
sysctl -p /etc/sysctl.d/k8s.conf

以下命令在Master节点初始化前运行也可以

modprobe br_netfilter
lsmod | grep br_netfilter
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system

开启IPVS

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 ce配置

cat > /etc/docker/daemon.json <<EOF
{"exec-opts":["native.cgroupdriver=systemd"],"log-driver":"json-file","log-opts":{"max-size": "100m"},"storage-driver": "overlay2"
}
EOFmkdir -p /etc/systemd/system/docker.service.d #重启docker服务
systemctl daemon-reload && systemctl restart docker && systemctl enable docker

kubeadm、kubelet、kubectl

使用阿里云的源,你可以科学上网的话就用官网的

cat <<EOF | sudo tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=http://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=http://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg http://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
exclude=kubelet kubeadm kubectl
EOF
sudo yum install -y kubelet kubeadm kubectl --disableexcludes=kubernetes
sudo systemctl enable --now kubelet

安装镜像

kubeadm config images pull \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers

Master节点初始化

kubeadm init --pod-network-cidr=172.16.0.0/16 --apiserver-advertise-address=your_master_ip --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers | tee kubeadm-init.log

注意修改your_master_ip为你的master节点的ip

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
export KUBECONFIG=/etc/kubernetes/admin.conf

安装CNI网络插件calico

wget https://docs.projectcalico.org/v3.18/manifests/calico.yaml

修改为init时的网段

kubectl create -f calico.yaml

Node节点添加

在kubeadm-init.log下找到类似

kubectl join master_ip:port --token xxx --discovery-token-ca-cert-hash xxx

的命令,在Node节点运行即可。
之后,可以在master节点使用

kubectl get nodes

查看三个节点的状态

参考

Container Runtimes
Install kubeadm
Create cluster with kubeadm
calico

k8s-最新版k8s安装(基于Centos)相关推荐

  1. 【K8S】K8S 1.18.2安装dashboard(基于kubernetes-dashboard 2.0.0版本)

    写在前面 K8S集群部署成功了,如何对集群进行可视化管理呢?别着急,接下来,我们一起搭建kubernetes-dashboard来解决这个问题. 有关K8S集群的安装可以参考<[K8S]基于单M ...

  2. K8s学习之yum安装

    文章目录 常用命令 1.K8S的架构 K8s核心组件介绍 K8s附加组件 2.K8s安装 1.修改ip地址.主机和host域名解析 2.master安装etcd 3.master安装kubernete ...

  3. K8S——单master节点和基于单master节点的双master节点二进制部署(本机实验,防止卡顿,所以多master就不做3台了)

    K8S--单master节点和基于单master节点的双master节点二进制部署 一.准备 二.ETCD集群 1.master节点 2.node节点 三.Flannel网络部署 四.测试容器间互通 ...

  4. K8S组件介绍及安装

    K8S组件介绍以及安装 一.K8S组件 1. 组件作用 1.1 master组件 1.2 node组件 1.3 插件组件 1.3.1 kubeDNS 1.3.2 Dashboard(Web界面) 1. ...

  5. Kubernetes(K8s)集群安装部署

    Kubernetes(K8s)集群安装 Kubernetes(K8s)集群安装 1 .基本环境配置 1.1.Kubernetes集群规划 1.2.基础环境配置(所有节点) 1.2.1.Host文件修改 ...

  6. Centos7国内环境下安装kubeadm、kubelet、kubectl并建立k8s集群、安装gitlab,测试spring boot 项目的CICD

    一.建立k8s集群 1.官网安装: 安装kubeadm 安装k8s集群.安装k8s高可用集群 2.开始 1.防火墙 关闭防火墙: systemctl stop firewalld.service. 开 ...

  7. 二进制安装K8S - NODE 节点的安装

    二进制安装K8S - NODE 节点的安装 安装系统 Linux node02 3.10.0-1062.el7.x86_64 #1 SMP Wed Aug 7 18:08:02 UTC 2019 x8 ...

  8. centos7 下google Kubernetes(k8s)集群安装部署

    centos7 下google Kubernetes(k8s)集群安装部署 简介 安装环境 安装前准备 ECTD集群配置 命令含义: master节点配置 1.安装kubernetes和etcd 2. ...

  9. 【网址收藏】k8s中helm方式安装postgresql及pgadmin

    k8s中helm方式安装postgresql及pgadmin 安装命令: $ helm repo add runix https://helm.runix.net/ $ helm install my ...

  10. 基于CentOS 7 安装Percona XtraDB Cluster(PXC) 5.7

    转载来源:https://blog.csdn.net/robinson_0612/article/details/78962190 基于CentOS 7 安装Percona XtraDB Cluste ...

最新文章

  1. html读取url中文件,HTML5基础知识 - JavaScript API - File - 读取文件为DataURL
  2. tomcat日志格式中的含义
  3. frida 安装特定版本
  4. Sitecore A / B测试
  5. jenkins用ssh agent插件在pipeline里实现scp和远程执行命令
  6. (王道408考研操作系统)第二章进程管理-第二节1:调度的基本概念及分类以及进程优先级
  7. 用 CSS 实现元素垂直居中
  8. 学用NHibernate(一)
  9. mysql垂直分库_mysql垂直分库,水平分库,垂直分表,水平分表
  10. java网上购物系统_Java Web 应用教程——网上购物系统的实现
  11. failed shard on node [XXX], failed recovery, failure RecoveryFailedException
  12. python编程 从入门到实践 第五章 if语句
  13. 六州歌头 本周(1216-1220)部分GAN论文
  14. ACM——01——1003: 【入门】求任意三位数各个数位上数字的和 【运算符】
  15. 后端接口如何提高性能?
  16. flash as3_vinson_01:绘制扇形
  17. 代数基础 | Kronecker积
  18. 手工测试2年面临职场危机,3个月进阶自动化测试后,老板终于留我了...
  19. 设计一个类代表二维空间的一个点,设计一个类代表二维空间的一个圆。要求两个成员变量。一个是圆心,一 个是半径,提供计算面积的方法。为上述Cricle类添加一个方法,计算一个点(Point)是否在圆内
  20. 每日一课 | Python处理文件系统的10种方法

热门文章

  1. 什么是渲染? 通俗易懂的理解
  2. SEO培训: 《搜索引擎优化知识完全手册》
  3. EXCEL之VLOOKUP函数——查找、分组、排序
  4. json的格式是什么?json的作用是什么?json是如何传递数据的?
  5. MySQL | 视图
  6. Thingsboard之魔鬼编译,编译失败问题整理,ServerUI
  7. pytorch中的数据加载(dataset基类,以及pytorch自带数据集)
  8. Bus Hound 工具抓取串口数据(PC端抓取USB转串口数据)
  9. 【jitpack】android implementation 远程仓库
  10. 2018ICPC青岛区域赛 zoj4062 Plants vs. Zombies