K8S-kubeadm集群安装

一.环境准备

1.服务器信息

2.系统初始(所有服务器)

2.1修改主机名

 hostnamectl set-hostname <主机名>

2.2添加主机hosts

[root@m1 ~]# cat /etc/hosts
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
#K8S集群
192.168.0.114 M1
192.168.0.115 M2
192.168.0.116 M3
192.168.0.117 W1
192.168.0.118 W2

2.3 更新软件包,安装依赖

# 更新yum
[root@m1 ~]# yum -y update
# 重启
[root@m1 ~]# reboot
# 安装依赖包
[root@m1 ~]# yum install -y conntrack ipvsadm ipset jq sysstat curl iptables libseccomp

2.4 关闭防⽕墙、swap,重置iptables

# 关闭防⽕墙
[root@m1 ~]# systemctl stop firewalld && systemctl disable firewalld
# 重置iptables
[root@m1 ~]# iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT
# 关闭selinux
[root@m1 ~]#setenforce 0
# 关闭dnsmasq(否则可能导致docker容器⽆法解析域名)
[root@m1 ~]#systemctl stop dnsmasq.service && systemctl disable dnsmasq             

2.5 系统参数设置

[root@m1 ~]# 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
[root@m1 ~]# modprobe br_netfilter
[root@m1 ~]# sysctl -p /etc/sysctl.d/kubernetes.conf

3. 安装docker(所有节点)

3.1 卸载旧版本

较旧的Docker版本称为dockerdocker-engine。如果已安装这些程序,请卸载它们以及相关的依赖项。
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

3.2 安装docker

1: 安装必要的一些系统工具
yum install -y yum-utils device-mapper-persistent-data lvm2
2: 添加软件源信息
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
3: 更新并安装 Docker-CE
yum makecache fast
4: 查找Docker-CE的版本:
yum list docker-ce.x86_64 --showduplicates | sort -r
yum -y install docker-ce-19.03.9-3.el7
5: 开启Docker服务
systemctl start docker
6: 开机启动
systemctl enable docker 如果您无法使用Docker的仓库来安装Docker,则可以下载该 .rpm文件以供手动安装。每次要升级Docker时,都需要下载一个新文件。
1、访问 https://download.docker.com/linux/centos/7/x86_64/stable/Packages/ 并下载.rpm您想要安装的Docker版本的文件。
2、安装Docker CE,安装docker之前需要安装docker-ce-selinux 将下面的路径更改为您下载Docker软件包的路径。
yum install docker-ce-selinux-***.ce-1.el7.centos.noarch.rpm
yum install docker-ce-***.ce-1.el7.centos.x86_64.rpm
3、启动Docker。
systemctl start docker

3.3 修改docker 安装目录

方法一:软连接

1 docker info  #查看docker的基本信息
2 #停止docker服务
3 systemctl stop docker
4 #备份原目录
5 cp -r /var/lib/docker /data/docker
6 mv /var/lib/docker /var/lib/docker.bak
7 ln -s /data/docker /var/lib/docker
8 systemctl start docker

方法二:新建或者编辑 daemon.json

vim /etc/docker/daemon.json
{
"data-root": "/data/docker"
}
#重启docker
systemctl restart docker

方法三:修改docker配置文件

#编辑文件
vim /usr/lib/systemd/system/docker.service
[Service]
ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock --data-root=/data/docker
#重启docke
systemctl daemon-reload
systemctl restart docker

二.K8S安装必要⼯具(所有节点)

1 ⼯具说明

1 kubeadm: 部署集群⽤的命令
2 kubelet: 在集群中每台机器上都要运⾏的组件,负责管理pod、容器的⽣命周期
3 kubectl: 集群管理⼯具(可选,只要在控制集群的节点上安装即可)

2.配置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

3.安装工具

#找到要安装的版本号
yum list kubeadm --showduplicates | sort -r
#安装1.18.4-1
yum install -y kubeadm-1.18.4-1 kubelet-1.18.4-1 kubectl-1.18.4-1

4.设置kubelet的cgroupdriver

# 设置kubelet的cgroupdriver(kubelet的cgroupdriver默认为systemd,如果上⾯没有设置docker的exec-opts为systemd,这⾥就需要将kubelet的设置为cgroupfs)
# 由于各⾃的系统配置不同,配置位置和内容都不相同
# 1. /etc/systemd/system/kubelet.service.d/10-kubeadm.conf(如果此配置存在的情况执⾏下⾯命令:)
[root@m1 ~]# sed -i "s/cgroup-driver=systemd/cgroup-driver=cgroupfs/g" /usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
# 2. 如果1中的配置不存在,则此配置应该存在(不需要做任何操):/usr/lib/systemd/system/kubelet.service.d/10-kubeadm.conf
  # 启动kubelet
 [root@m1 ~]# systemctl enable kubelet && systemctl start kubelet

kubeadm添加新master或node.    注意:需拷贝etcd ca client证书

一、首先在master上生成新的token

kubeadm token create --print-join-command
1
kubeadm join 192.168.1.10:6443 --token 42ojpt.z2h5ii9n898tzo36 --discovery-token-ca-cert-hash sha256:7cf14e8cb965d5eb9d66f3707ba20deeadc90bd36b730ce4c0e5d9db80d3625b

二、在master上生成用于新master加入的证书

kubeadm init phase upload-certs --experimental-upload-certs
1
[root@master ~]# kubeadm init phase upload-certs --experimental-upload-certs
Flag --experimental-upload-certs has been deprecated, use --upload-certs instead
W1228 17:15:02.356743 27154 version.go:98] could not fetch a Kubernetes version from the internet: unable to get URL “https://dl.k8s.io/release/stable-1.txt”: Get https://storage.googleapis.com/kubernetes-release/release/stable-1.txt: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
W1228 17:15:02.356872 27154 version.go:99] falling back to the local client version: v1.15.1
[upload-certs] Storing the certificates in Secret “kubeadm-certs” in the “kube-system” Namespace
[upload-certs] Using certificate key:
e799a655f667fc327ab8c91f4f2541b57b96d2693ab5af96314ebddea7a68526

三、添加新node

kubeadm join 192.168.1.10:6443 --token 42ojpt.z2h5ii9n898tzo36 --discovery-token-ca-cert-hash sha256:7cf14e8cb965d5eb9d66f3707ba20deeadc90bd36b730ce4c0e5d9db80d3625b

四、添加新master,把红色部分加到–experimental-control-plane --certificate-key后。

kubeadm join 192.168.1.10:6443 --token 42ojpt.z2h5ii9n898tzo36 --discovery-token-ca-cert-hash sha256:7cf14e8cb965d5eb9d66f3707ba20deeadc90bd36b730ce4c0e5d9db80d3625b --experimental-control-plane --certificate-key e799a655f667fc327ab8c91f4f2541b57b96d2693ab5af96314ebddea7a68526

K8S-kubeadm集群安装的更多相关文章

  1. kubeadm 线上集群部署(二) K8S Master集群安装以及工作节点的部署

    PS:所有机器主机名请提前设置好 在上一篇,ETCD集群我们已经搭建成功了,下面我们需要搭建master相关组件,apiverser需要与etcd通信并操作 1.配置证书 将etcd证书上传到mast ...

  2. k8s学习-集群安装

    3.kubernetes安装 3.1.规划 hostname ip 内存 核 硬 说明 harbor 192.168.136.30 2G 2 100G 私有仓库 koolshare 2G 2 20G ...

  3. K8s集群安装--最新版 Kubernetes 1.14.1

    K8s集群安装--最新版 Kubernetes 1.14.1 前言 网上有很多关于k8s安装的文章,但是我参照一些文章安装时碰到了不少坑.今天终于安装好了,故将一些关键点写下来与大家共享. 我安装是基 ...

  4. [转帖]K8s集群安装--最新版 Kubernetes 1.14.1

    K8s集群安装--最新版 Kubernetes 1.14.1 http://www.cnblogs.com/jieky/p/10679998.html 原作者写的比较简单 大略流程和跳转的多一些 改天 ...

  5. k8s入门系列之集群安装篇

    关于kubernetes组件的详解介绍,请阅读上一篇文章<k8s入门系列之介绍篇> Kubernetes集群安装部署 •Kubernetes集群组件: - etcd 一个高可用的K/V键值 ...

  6. k8s 入门系列之集群安装篇

    关于kubernetes组件的详解介绍,请阅读上一篇文章<k8s入门系列之介绍篇> Kubernetes集群安装部署 •Kubernetes集群组件: - etcd 一个高可用的K/V键值 ...

  7. K8S集群安装部署

    K8S集群安装部署   参考地址:https://www.cnblogs.com/xkops/p/6169034.html 1. 确保系统已经安装epel-release源 # yum -y inst ...

  8. k8S 搭建集群

    k8S 搭建集群1:修改主机名称hostnamectl --static set-hostname masterhostnamectl --static set-hostname node1hostn ...

  9. 这一篇 K8S(Kubernetes)集群部署 我觉得还可以!!!

    点赞再看,养成习惯,微信搜索[牧小农]关注我获取更多资讯,风里雨里,小农等你,很高兴能够成为你的朋友. 国内安装K8S的四种途径 Kubernetes 的安装其实并不复杂,因为Kubernetes 属 ...

  10. 使用国内的镜像源搭建 kubernetes(k8s)集群

    1. 概述 老话说的好:努力学习,提高自己,让自己知道的比别人多,了解的别人多. 言归正传,之前我们聊了 Docker,随着业务的不断扩大,Docker 容器不断增多,物理机也不断增多,此时我们会发现 ...

随机推荐

  1. java 入门与进阶P-6.5+P-6.6

    字符串操作 字符串是对象,对它的所有操作都是通过" . " 这个运算符来进行的 字符串.操作 他表示对.左边的这个字符串做右边的那个操作 这里的字符串可以是变量也可以是常量 Str ...

  2. Blazor入门100天 : 身份验证和授权 (6) - 使用 FreeSql orm 管理ids数据

    目录 建立默认带身份验证 Blazor 程序 角色/组件/特性/过程逻辑 DB 改 Sqlite 将自定义字段添加到用户表 脚手架拉取IDS文件,本地化资源 freesql 生成实体类,freesql ...

  3. .NET 团队 更新了 .NET 语言策略

    2023年2月6日 ,.NET团队在官方博客上发布了.NET 语言策略的更新文章,具体参见 https://devblogs.microsoft.com/dotnet/update-to-the-do ...

  4. 艰难的 debug 经历,vscode 无法获取远程环境 ssh 报错,windows 11 ssh

    背景介绍 要做系统结构实验,学校和华为云合作使用华为云的 aarch64 裸机,需要使用 ssh 远程开发,笔者为了追求良好的开发体验,决定使用 vscode 开发,实验环境配置过程中遇到了两个问题, ...

  5. 编写antd的Cascader 级联选择组件市级地区数据

    下面是该组件的使用数据的格式 options: [ { value: 'zhejiang', label: 'Zhejiang', children: [ { value: 'hangzhou', l ...

  6. 我让 ChatGPT 写了个 ChatGPT

    这家伙实在是火得过头了,索性讲个它的故事. 去年11月份,OpenAI 推出了 ChatGPT.  这里就不赘述这个家喻户晓玩意的常识了. 要说刚开始也没多少人在意,一个聊天机器人-- 谁稀罕呐. 但 ...

  7. 一个javaweb的项目的思路

    马上就要期中考试了,把最近靠自己学的知识总结一下(自己学的),以下为eclipse的一个界面 可以看出,有很多内容.首先,有好几个包,Bean,Dao,servlet,service,Util,Uti ...

  8. 六:spring Cloud

    六Spring Cloud 回顾之前的: javaSE 数据库 前端 Servlet HTTP Mybatis Spring SpringMVC SpringBoot Dubbo.Zookeeper. ...

  9. JZOJ 3167.查税

    \(\text{Solution}\) 记 \(k\) 这个办公室相关属性有 \(t,z,s\) 对于以后的某一天 \(T\),其账户余额为 \((T-t)z+s\) 要最大化这东西,不妨另 \(b= ...

  10. 【多线程与高并发】- 浅谈volatile

    浅谈volatile 目录 浅谈volatile 简介 JMM概述 volatile的特性 1.可见性 举个例子 总结 2.无法保证原子性 举个例子 分析 使用volatile对原子性测试 使用锁的机 ...