Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >基于ubuntu系统的k8s集群安装

基于ubuntu系统的k8s集群安装

作者头像
兜兜转转
发布于 2023-03-06 07:12:01
发布于 2023-03-06 07:12:01
83210
代码可运行
举报
文章被收录于专栏:CodeTimeCodeTime
运行总次数:0
代码可运行

主机准备

主机名

操作系统

CPU

内存

硬盘

master1

ubuntu18.04

1*2核

2G

20G

node1

ubuntu18.04

1*2核

2G

20G

node2

ubuntu18.04

1*2核

2G

20G

集群安装

运行时安装(docker)

切换root账号sudo su -

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common gnupg2

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key --keyring /etc/apt/trusted.gpg.d/docker.gpg add -

sudo add-apt-repository \
  "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) \
  stable"

sudo apt-get update && sudo apt-get install -y \
  containerd.io=1.2.13-2 \
  docker-ce=5:19.03.11~3-0~ubuntu-$(lsb_release -cs) \
  docker-ce-cli=5:19.03.11~3-0~ubuntu-$(lsb_release -cs)

配置docker并设置开机启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo mkdir /etc/docker

cat <<EOF | sudo tee /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "100m"
  },
  "storage-driver": "overlay2"
}
EOF

sudo mkdir -p /etc/systemd/system/docker.service.d

sudo systemctl daemon-reload
sudo systemctl restart docker
sudo systemctl enable --now docker

集群工具安装

添加配置

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

安装kubeadmkubeletkubectl

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 添加镜像源公钥
curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -

# 添加镜像源
echo "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" >/etc/apt/sources.list.d/kubernetes.list

# 安装
sudo apt-get update
sudo apt-get install -y apt-transport-https curl
sudo apt-get install -y kubelet=1.20.1-00 kubeadm=1.20.1-00 kubectl=1.20.1-00

sudo apt-mark hold kubelet kubeadm kubectl

初始化集群

每个节点都拉取镜像(选择国内源):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubeadm config images pull \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers

关闭swap:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
swapoff -a
vim /etc/fstab
# 注释 /swap.img

Master节点初始化

地址必须是master节点地址:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubeadm init --apiserver-advertise-address 192.168.32.131 --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers

配置kubectl:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

Node节点初始化

加入集群:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubeadm join 192.168.32.131:6443 --token c5brd6.qc9zfje7kpcbk6sv --discovery-token-ca-cert-hash sha256:aaa4365860781c328b2cc363447fff6dc0b61f1b5e96d05e2fa26bce1ad2585d

重置集群(退出集群):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubeadm reset

查看token:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubeadm token list

如果token过期,可创建token并直接打印join命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubeadm token create --print-join-command

插件安装

插件下载地址:百度网盘,提取码:akxk

安装网络插件

安装CNI插件calico

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl create -f calico.yaml

安装MetricsServer:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl create -f metrics-server.yaml

然后将master节点的/etc/kubernetes/pki/front-proxy-ca.crt拷贝到各node节点下。

安装图形化界面

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl create -f dashboard.yaml -f user.yaml

查看图形界面web服务访问端口(kubernetes-dashboard服务对外的端口):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl get svc -n kubernetes-dashboard

查看访问用户:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl get secret -n kube-system

找到用户admin-user-token-xxx,查看它的详细信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl describe secret admin-user-token-xxx -n kube-system

显示出访问token,输入到web登录界面中,进入图形化管理界面。

安装Ingress

设置某个节点标签:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl label node cka-node2 ingress=true

创建资源:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl create -f ingress.yaml

查看ingress节点ip:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
kubectl get po -n ingress-nginx -owide
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-01-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
1 条评论
热度
最新
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
最新 Docker 与 Kubernetes 实操指南:全面掌握容器化方案从入门到精通
容器化技术已成为现代应用部署的标准方案,Docker 与 Kubernetes 的组合更是企业级应用的首选。本文基于 2025 年最新技术栈,提供从环境搭建到应用部署的完整实操指南,包含多架构支持、安全加固等最新特性。
啦啦啦191
2025/08/09
3190
最新 Docker 与 Kubernetes 实操指南:全面掌握容器化方案从入门到精通
Kubernetes/K8S快速入门
官方文档:https://kubernetes.io/zh/docs/setup/
码客说
2021/03/04
1.8K0
【玩转腾讯云】腾讯云部署K8s集群
如果想要了解 K8s 的一些特性,并且将其应运的很好,那就需要动手部署一个 K8s 集群。下面讲解下在腾讯云上 K8s 集群部署流程。
程序猿Damon
2021/05/06
9.9K1
【玩转腾讯云】腾讯云部署K8s集群
【K8s】kubeadm 安装 k8s 集群
本篇文章主要是通过 VMware 来创建虚拟机,在虚拟机上通过 kubeadm 安装 k8s 集群;
Librant
2025/01/13
5370
部署k8s集群(k8s集群搭建详细实践版)
Kubeadm是一个K8s部署工具,提供kubeadm init和kubeadm join,用于快速部署Kubernetes集群。
zjiekou
2022/11/12
23.8K5
Ubuntu 22.04 搭建K8s集群
本文基于Mac平台和Parallels软件,在其中创建三个Ubuntu系统,搭建了一个3个节点(1个master和2个Node)的K8s集群。下面的步骤没有特殊说明,都是需要在所有节点上分别执行的。也可以在一个虚拟机上执行完之后,复制当前虚拟机作为其他节点。
码老思
2023/10/19
4.2K0
Ubuntu 22.04 搭建K8s集群
不背锅运维:搭不起来我赔钱给你:分享Ubuntu20和Centos7中使用kubeadm搭建k8s集群。
取消注释,并修改成与前面kubeadm init的 --pod-network-cidr(10.244.0.0/16)指定的一样。
不背锅运维
2022/12/20
1K0
2.入门-K8s 集群环境搭建(docker+k8s)
AI码师
2024/04/10
4.1K0
2.入门-K8s 集群环境搭建(docker+k8s)
多次装K8S集群后整理的一键安装脚本及配置说明
去年从腾讯出来,换了家企业,涉及到一些安装运维工作,其中大数据AI产品需要落地,在大厂腾都有现成的可以用,来到这都没有K8S集群,后面需要借助k8s落地,就需要从头开始从K8S集群搭建开始做起,然后公司的业务涉及到海内外还分了开发、测试、预发布等多套K8S集群。采用kubeadm安装集群非常方便,只不过安装前还需要做些前置的系统配置,如果构建多个节点的集群会涉及到一些重复操作, 这时候最好编写成一个脚本快速的安装部署,这里整理个安装脚本。
house.zhang
2021/09/15
3.2K0
简单了解一下K8S,并搭建自己的集群
距离上次更新已经有一个月了,主要是最近工作上的变动有点频繁,现在才暂时稳定下来。这篇博客的本意是带大家从零开始搭建K8S集群的。但是我后面一想,如果是我看了这篇文章,会收获什么?就是跟着步骤一步一走吗?是我的话我会选择拒绝,所以我加了关于K8S的简单介绍,每一步的步骤都添加了解释。由于篇幅和时间原因,我只介绍了K8S中较为核心的Pod和Service。
SH的全栈笔记
2019/12/20
1.2K0
简单了解一下K8S,并搭建自己的集群
学习kubernetes,从快速搭建k8s集群开始
本系列文章,我们将在Ubuntu Server 18.04上搭建k8s环境进行入门学习。为了使用原生的Ubuntu Server 18.04,我们将使用multipass来创建多台Ubuntu Server 18.04虚拟环境。也就是说,如果你想完整参考本系列博客学习,你电脑上应当安装并能正常运行multipass,如果你想了解multipass基本操作,可以参考我写的另一篇博客:【使用Multipass管理Ubuntu虚拟机】。本文演示k8s集群搭建步骤,并不涉及k8s基础知识,你可能对文章的一些专业词语感到默生,但没有关系,我们在后面会循序渐进地介绍k8s知识。
极客开发者
2022/01/18
5190
运维篇 k8s(Kubernetes)
k8s是kubernetes的简称,即字母“k”到最后一位相隔8位字母。名字来源于希腊语,意思是“舵手”或“领航员”。
用针戳左手中指指头
2021/01/29
3.7K0
运维篇 k8s(Kubernetes)
kubeadm搭建k8s集群(CVM环境)
k8s需要不同节点之前的TCP连接,由于三个节点属于同一子网,我这里配置了三个节点之前的TCP连接
Basasuya
2022/02/06
1.3K0
k8s学习四-部署节点加入集群
从节点加入集群的环境步骤配置跟master类似,但是可以不需要部署网络插件 flannel
仙士可
2022/09/13
9620
k8s学习四-部署节点加入集群
Create you course K8s cluster-创建课程所需的k8s集群
线上跑的是自建的集群搭建方式详见:https://duiniwukenaihe.github.io/2020/07/22/tencent-slb-kubeadm-ha/(跑了两个集群,其实还是跑的1.16版本,只进行了小版本升级现为1.16.15版本)
对你无可奈何
2021/02/01
7201
使用 kubeadm 部署 Kubernetes 1.21.10 [2022 更新版]
有两种方法可以部署 Master 相关的组件,一种是使用init 配置文件,另外一种是使用命令行参数,建议使用 init 配置文件进行部署。
懒人的小脑
2022/03/15
1.5K0
centos7 安装 k8s
其中https://82m9ar63.mirror.aliyuncs.com去阿里云获取,替换成自己的
DencyCheng
2022/12/02
8430
公网环境搭建 k8s 集群
笔者利用手头几台云服务器搭建 k8s 集群,由于这几台云服务属于不同的云服务厂商,无法搭建局域网环境的 k8s 集群,故笔者搭建的是公网环境的 k8s 集群,在此做个记录, 以下均在 ubuntu 20.04 环境下进行
菜菜cc
2022/11/15
3.7K0
公网环境搭建 k8s 集群
使用kubeadm创建K8S单控制节点集群
这里的场景是在一台KVM host上创建一个master guest host,三个nodes guest hosts,并组成kubernets集群。如图:
dhyuan
2022/05/30
7760
使用kubeadm创建K8S单控制节点集群
Ubuntu 23.10.1 上安装 Kubernetes 1.28.2
要ping一下自己的机器名,如果返回127.0.0.1,请到 /etc/hosts修改成实际的IP地址
NeXT80
2022/07/26
6.1K3
Ubuntu 23.10.1 上安装 Kubernetes 1.28.2
相关推荐
最新 Docker 与 Kubernetes 实操指南:全面掌握容器化方案从入门到精通
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档