kubeadm安装Kubernetes

本文涉及的产品
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
简介: kubeadm安装Kubernetes

集群信息

1. 节点规划

部署k8s集群的节点按照用途可以划分为如下2类角色:

  • master:集群的master节点,集群的初始化节点,基础配置不低于2C4G
  • slave:集群的slave节点,可以多台,基础配置不低于2C4G

本次部署采用三台阿里云ECS

配置 4h16G 4h8G 2h4G

本例为了演示slave节点的添加,会部署一台master+2台slave,节点规划如下:

主机名

节点ip

角色

部署组件

k8s-master

172.16.98.228

master

etcd, kube-apiserver, kube-controller-manager, kubectl, kubeadm, kubelet, kube-proxy, flannel

k8s-slave1

172.16.98.224

slave

kubectl, kubelet, kube-proxy, flannel

k8s-slave2

172.16.88.3

slave

kubectl, kubelet, kube-proxy, flannel

2. 组件版本

组件

版本

说明

CentOS

7.8.2003

Kernel

Linux 3.10.0-1127.10.1.el7.x86_64

etcd

3.4.13-0

使用容器方式部署,默认数据挂载到本地路径

coredns

1.7.0

kubeadm

v1.19.8

kubectl

v1.19.8

kubelet

v1.19.8

kube-proxy

v1.19.8

flannel

v0.11.0

安装前准备工作

1. 设置hosts解析

操作节点:所有节点(k8s-master,k8s-slave)均需执行

  • 修改hostnamehostname必须只能包含小写字母、数字、","、"-",且开头结尾必须是小写字母或数字

# 在master节点

$ hostnamectl set-hostname k8s-master #设置master节点的hostname


# 在slave-1节点

$ hostnamectl set-hostname k8s-slave1 #设置slave1节点的hostname


# 在slave-2节点

$ hostnamectl set-hostname k8s-slave2 #设置slave2节点的hostname

  • 添加hosts解析

cat >>/etc/hosts<<EOF

172.21.51.143 k8s-master

172.21.51.67 k8s-slave1

172.21.51.68 k8s-slave2

EOF

2. 调整系统配置

操作节点: 所有的master和slave节点(k8s-master,k8s-slave)需要执行

  • 设置安全组开放端口

如果节点间无安全组限制(内网机器间可以任意访问),可以忽略,否则,至少保证如下端口可通:k8s-master节点:TCP:6443,2379,2380,60080,60081UDP协议端口全部打开k8s-slave节点:UDP协议端口全部打开

  • 设置iptables

iptables -P FORWARD ACCEPT

  • 关闭swap

swapoff -a

# 防止开机自动挂载 swap 分区

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

  • 关闭selinux和防火墙

sed -ri 's#(SELINUX=).*#\1disabled#' /etc/selinux/config

setenforce 0

systemctl disable firewalld && systemctl stop firewalld

  • 修改内核参数

cat <<EOF >  /etc/sysctl.d/k8s.conf

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

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

net.ipv4.ip_forward=1

vm.max_map_count=262144

EOF

modprobe br_netfilter

sysctl -p /etc/sysctl.d/k8s.conf

  • 设置yum源

curl -o /etc/yum.repos.d/Centos-7.repo http://mirrors.aliyun.com/repo/Centos-7.repo

$ curl -o /etc/yum.repos.d/docker-ce.repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

$ cat <<EOF > c

[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 clean all && yum makecache

3. 安装docker

操作节点: 所有节点

## 查看所有的可用版本

$ yum list docker-ce --showduplicates | sort -r

##安装旧版本 yum install docker-ce-cli-18.09.9-3.el7  docker-ce-18.09.9-3.el7

## 安装源里最新版本

$ yum install docker-ce-20.10.6 -y


## 配置docker加速

$ mkdir -p /etc/docker

vi /etc/docker/daemon.json

{

 "insecure-registries": [    

   "172.21.51.143:5000"

 ],                          

 "registry-mirrors" : [

   "https://8xpk5wnt.mirror.aliyuncs.com"

 ]

}

## 启动docker

$ systemctl enable docker && systemctl start docker

部署kubernetes

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
1月前
|
Kubernetes 网络虚拟化 Docker
K8S镜像下载报错解决方案(使用阿里云镜像去下载kubeadm需要的镜像文件)
文章提供了一个解决方案,用于在无法直接访问Google镜像仓库的情况下,通过使用阿里云镜像来下载kubeadm所需的Kubernetes镜像。
83 3
K8S镜像下载报错解决方案(使用阿里云镜像去下载kubeadm需要的镜像文件)
|
24天前
|
Kubernetes 应用服务中间件 nginx
Kubernetes上安装Metallb和Ingress并部署应用程序
Kubernetes上安装Metallb和Ingress并部署nginx应用程序,使用LoadBalancer类型的KubernetesService
93 3
|
1月前
|
Kubernetes Ubuntu 网络安全
Ubuntu基于kubeadm快速部署K8S实战
关于如何在Ubuntu系统上使用kubeadm工具快速部署Kubernetes集群的详细实战指南。
114 2
|
1月前
|
Kubernetes 负载均衡 应用服务中间件
kubeadm快速构建K8S1.28.1高可用集群
关于如何使用kubeadm快速构建Kubernetes 1.28.1高可用集群的详细教程。
49 2
|
1月前
|
Kubernetes Linux API
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
该博客文章详细介绍了在CentOS 7.6操作系统上使用kubeadm工具部署kubernetes 1.17.2版本的测试集群的过程,包括主机环境准备、安装Docker、配置kubelet、初始化集群、添加节点、部署网络插件以及配置k8s node节点管理api server服务器。
63 0
CentOS 7.6使用kubeadm部署k8s 1.17.2测试集群实战篇
|
2月前
|
Kubernetes 数据库 容器
k8s安装seata单机版
k8s安装seata单机版
|
2月前
|
消息中间件 Kubernetes 容器
k8s安装rabbbitmq
k8s安装rabbbitmq
|
2月前
|
Kubernetes NoSQL MongoDB
k8s安装YAPI
k8s安装YAPI
|
2月前
|
Kubernetes 关系型数据库 MySQL
k8s安装并迁移jumpserver
k8s安装并迁移jumpserver
|
2月前
|
Kubernetes 调度 容器
k8s descheduler 组件安装
k8s descheduler 组件安装
下一篇
无影云桌面