【k8s系列】vmware中ubuntu22.04使用kubeadm安装k8s集群(1.24.4 or higher)(cka考试环境搭建)

news2024/10/1 3:28:08

文章目录

    • 部署环境准备
    • 环境修改
      • 修改hostname(各修改各的)
      • 修改hosts文件(master 和所有node )
      • 禁用swap(master 和所有node)
      • 修改内核参数(master 和所有node )
    • 安装 containerd
    • 安装k8s
      • 安装组件(master 和所有node )
      • 下载镜像(master 和所有node )
      • 集群配置(master)
      • 集群配置2
      • 集群配置3
      • 集群配置4
      • 集群配置5
      • node节点
    • 网络插件
    • 测试
    • 工具类学习
    • 参考

author: ningan123
date: ‘2022-11-28 22:53’
updated: ‘2022-12-17 11:30’

搭建虚拟机可以参考我的另一篇博文:【网络成长记】VMware16.2.2中创建ubuntu22.04.1虚拟机+修改静态ip+换源+mobaxterm远程连接+修改命令提示符颜色(cka考试虚拟机搭建)

部署环境准备

ubuntu22.04虚拟机3台

环境修改

修改hostname(各修改各的)

hostnamectl set-hostname k8s-master // master节点
hostnamectl set-hostname k8s-node1  // node1节点
hostnamectl set-hostname k8s-node2  // node2节点

重启虚拟机,可以看到hostname已经生效了

修改hosts文件(master 和所有node )

修改/etc/hosts文件,添加下面内容

cat >> /etc/hosts << EOF
192.168.1.100 k8s-master
192.168.1.101 k8s-node1
192.168.1.102 k8s-node2
EOF

禁用swap(master 和所有node)

执行 free -m 命令检测: 如果Swap这一行不是0,则说明虚拟内存swap被开启了,需要关闭。

sudo swapoff -a 
sudo sed -i '/swap/ s/^\(.*\)$/#\1/g' /etc/fstab 
# -i 插入修改模式,g 标识符表示全局查找替换,表示注释掉swap的那一行。 free -h

修改内核参数(master 和所有node )

# Enable kernel modules
sudo tee /etc/modules-load.d/containerd.conf <<EOF
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter



# Add some settings to sysctl
sudo tee /etc/sysctl.d/kubernetes.conf<<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

# 重新加载 sysctl
sudo sysctl --system

安装 containerd

# 安装关联软件
sudo apt install -y curl gnupg2 software-properties-common apt-transport-https ca-certificates

# 安装docker仓库
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/docker.gpg
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"


# 安装containerd
sudo apt update 
sudo apt install -y containerd.io

# 配置 containerd 用systemdcgroup启动.
containerd config default | sudo tee /etc/containerd/config.toml >/dev/null 2>&1
sudo sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g' /etc/containerd/config.toml

# 重启
sudo systemctl restart containerd 
sudo systemctl enable containerd

可以看到containerd已经成功启动~

# 设置crictl
cat > /etc/crictl.yaml << EOF
runtime-endpoint: unix:///var/run/containerd/containerd.sock
image-endpoint: unix:///var/run/containerd/containerd.sock
timeout: 10 
debug: false
EOF

安装k8s

安装组件(master 和所有node )

# 添加apt repository for Kubernetes
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add - 
sudo apt-add-repository "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main"

apt-get update
# 查看版本
apt-cache madison kubeadm|head

apt install -y kubelet=1.24.4-00 kubeadm=1.24.4-00 kubectl=1.24.4-00

下载镜像(master 和所有node )

# 使用国内阿里云镜像站点,查看所需镜像
kubeadm config images list \
--image-repository registry.aliyuncs.com/google_containers \
--kubernetes-version=v1.24.4

# 指定版本下载
kubeadm config images pull \
--kubernetes-version=v1.24.4 \
--image-repository registry.aliyuncs.com/google_containers

# 查看镜像
crictl images

集群配置(master)

kubeadm config print init-defaults > kubeadm.yaml

修改集群配置如下:
左边为导出的原始文件,右边为修改后的文件

# 
kubeadm init \
--config /root/kubeadm.yaml \
--ignore-preflight-errors=SystemVerification \
--upload-certs

 journalctl -xefu  kubelet

集群配置2

kubeadm reset

集群配置3

集群配置4

journalctl -xefu kubelet 的报错信息如下:

1128 23:24:10 k8s-master kubelet[24909]: E1128 23:24:10.831329   24909 remote_runtime.go:201] "RunPodSandbox from runtime service failed" err="rpc error: code = Unknown desc = failed to get sandbox image \"registry.k8s.io/pause:3.6\": failed to pull image \"registry.k8s.io/pause:3.6\": failed to pull and unpack image \"registry.k8s.io/pause:3.6\": failed to resolve reference \"registry.k8s.io/pause:3.6\": failed to do request: Head \"https://asia-east1-docker.pkg.dev/v2/k8s-artifacts-prod/images/pause/manifests/3.6\": dial tcp 108.177.125.82:443: connect: connection refused"

cat /etc/containerd/config.toml  |grep image

# 替换
sed -i "s#registry.k8s.io/pause:3.6#registry.aliyuncs.com/google_containers/pause:3.6#g"  /etc/containerd/config.toml

# 重启containerd
systemctl daemon-reload && systemctl restart containerd
# 重新执行
kubeadm reset

kubeadm init \
--config /root/kubeadm.yaml \
--ignore-preflight-errors=SystemVerification \
--upload-certs

集群配置5

journalctl -xefu kubelet 的报错信息如下:

11月 29 00:11:19 k8s-master kubelet[42857]: E1129 00:11:19.795996   42857 remote_runtime.go:201] "RunPodSandbox from runtime service failed" err="rpc error: code = Unknown desc = failed to create containerd task: failed to create shim task: OCI runtime create failed: runc create failed: expected cgroupsPath to be of format \"slice:prefix:name\" for systemd cgroups, got \"/kubepods/burstable/pod444f719af02c349e8eca993c949ab6b9/eddc1ba340a885d45775c0bf4e1f634abf90ac1474ffea30ea6489ba5edd96ba\" instead: unknown"

改回systemd

# 重新执行
kubeadm reset

kubeadm init \
--config /root/kubeadm.yaml \
--ignore-preflight-errors=SystemVerification \
--upload-certs

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

# 最终配置
[root@k8s-master ~]# cat kubeadm.yaml
apiVersion: kubeadm.k8s.io/v1beta3
bootstrapTokens:
- groups:
  - system:bootstrappers:kubeadm:default-node-token
  token: abcdef.0123456789abcdef
  ttl: 24h0m0s
  usages:
  - signing
  - authentication
kind: InitConfiguration
localAPIEndpoint:
  advertiseAddress: 192.168.1.100
  bindPort: 6443
nodeRegistration:
  criSocket: unix:///var/run/containerd/containerd.sock
  imagePullPolicy: IfNotPresent
  name: k8s-master
  taints: null
---
apiServer:
  timeoutForControlPlane: 4m0s
  certSANs:
  - 192.168.1.100
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns: {}
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers
kind: ClusterConfiguration
kubernetesVersion: 1.24.4
networking:
  dnsDomain: cluster.local
  podSubnet: 10.244.0.0/16
  serviceSubnet: 10.96.0.0/12
scheduler: {}
---
# 指定cgroup
apiVersion: kubelet.config.k8s.io/v1beta1
kind: KubeletConfiguration
cgroupDriver: systemd

node节点

两个节点都执行如下方法:

cat /etc/containerd/config.toml  |grep image

sed -i "s#registry.k8s.io/pause:3.6#registry.aliyuncs.com/google_containers/pause:3.6#g"  /etc/containerd/config.toml

systemctl daemon-reload && systemctl restart containerd

kubeadm join 192.168.1.100:6443 --token abcdef.0123456789abcdef \
        --discovery-token-ca-cert-hash sha256:3ce5d8f9fd07a09dd1625531de6876f3b41110c4e005a1c2b5470fbf074ab5cf

集群安装成功~

网络插件

# 使用calico
curl https://raw.githubusercontent.com/projectcalico/calico/v3.24.1/manifests/calico.yaml -o calico-3-24-1.yaml
kubectl apply -f calico-3-24-1.yaml

部署完成之后多等一会,就会变成running了~

node也全部都是ready了~

测试

kubectl create deployment nginx --image=nginx
kubectl get pod
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get pod,svc

工具类学习

grep 'registry.k8s.io/pause:3.6' /var/log/syslog

参考

# [最新]ubuntu22.04安装kubernetes1.25 k8s1.25 前半部分配置
Ubuntu22.04 安装 K8S 后半部分配置 kubeadm的config配置 ipvs配置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/95922.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C/C++程序的断点调试 - Dev C++

本文以Dev C 5.11为例&#xff0c;简述C/C程序断点调试的基本方法和过程。其它的IDE环境&#xff0c;大同小异。 本文引用自作者编写的下述图书; 本文允许以个人学习、教学等目的引用、讲授或转载&#xff0c;但需要注明原作者"海洋饼干叔 叔"&#xff1b;本文不允许…

探花交友_第7章_即时通信(新版)

探花交友_第7章_即时通信 文章目录探花交友_第7章_即时通信1.1 什么是即时通信1.2 功能说明1.3 技术方案2. 环信2.1 开发简介2.2 环信Console2.3 环信API介绍初始化基础API3. 抽取环信组件3.1 编写Properties对象3.2 编写HuanXinTemplate3.3 编写自动配置类3.4 环信集成测试4. …

Windows Defender 绕过(RTO I Lab环境实测)

背景 15号这天我通过了 RTO I 的考试。细想 RTO I 考试的 Lab&#xff0c;好像 Windows Defender&#xff08;以下简称 WD&#xff09;的保护做的比 OSEP 考试时还要好&#xff0c;更加严格。 回想起 9 月考 OSEP 的时候&#xff0c;只要你的 Payload 在文件创建&#xff08;…

这可能是Github 最全的Java面试笔记, 简直把所有 Java 知识面试题写出来了

前言 作为一个 Java 程序员&#xff0c;你平时总是陷在业务开发里&#xff0c;每天噼里啪啦忙敲着代码&#xff0c;上到系统开发&#xff0c;下到 Bug 修改&#xff0c;你感觉自己无所不能。然而偶尔的一次聚会&#xff0c;你听说和自己一起出道的同学早已经年薪 50 万&#x…

大数据 Hadoop集群配置

配置Hadoop集群 在master虚拟机上配置hadoop 编辑Hadoop环境配置文件 - hadoop-env.sh 命令&#xff1a;cd $HADOOP_HOME/etc/hadoop&#xff0c;进入hadoop配置目录 命令&#xff1a;vim hadoop-env.sh 命令source hadoop-env.sh&#xff0c;让配置生效 编辑Hadoop核心配…

项目的可交付成果

目录 概述 定义 形式 评审与验收 概述 概念来自PMBOK,这书真的要细嚼慢咽,“可交付成果”多次出现,全书总共出现了288次,贯穿全书,绝对是个核心概念。 定义 可交付成果是在某一过程、阶段或项目完成时,必须产出的任何独特并可核实的产品、成果或服务能力。它通常是…

2022吴恩达机器学习课程——第二课(神经网络)

注&#xff1a;参考B站视频教程 视频链接&#xff1a;【(强推|双字)2022吴恩达机器学习Deeplearning.ai课程】 文章目录第一周一、神经元二、神经网络三、代码实现 & Tensorflow四、前向传播五、强人工智能六、矩阵乘法 (简单&#xff0c;可以跳过)第二周一、用Tensorflow训…

20221217英语学习

今日新词 haul v.&#xff08;人&#xff09;拖&#xff0c;拉 herd n.人群&#xff1b;&#xff08;尤指有蹄的哺乳动物&#xff09;兽群&#xff0c;牧群 focus v.把注意力集中于&#xff0c;重视&#xff1b;集中&#xff1b;&#xff08;使&#xff09;调节焦距 result…

代码随想录刷题记录day44 股票问题3 4

代码随想录刷题记录day44 股票问题3 4 123. 买卖股票的最佳时机 III 思想 dp数组定义 递推公式 dp[i][0] 第i天不操作股票手头最大的现金 i从0开始 dp[i][1] 第i天第一次持有股票的手头最大的现金 dp[i][1] max: i-1天不操作&#xff0c;第i天才买入&#xff1a;dp[i-1][0…

港科夜闻|香港科技大学(广州)拟获批首个省级重点实验室

关注并星标每周阅读港科夜闻建立新视野 开启新思维1、香港科技大学(广州)拟获批首个省级重点实验室。2022年12月6日&#xff0c;广东省科学技术厅发布关于2023年度平台基地及科技基础条件建设、高水平科技期刊建设拟立项目清单的公示&#xff0c;香港科大(广州)申报的广东省通感…

「Spring Cloud Alibaba官方手册」首发爆火,Github上标星243k

几年前 Dubbo被 SpringCloud所取代&#xff0c;相同的剧本&#xff0c;可惜阿里巴巴和 Spring社区都是巨头&#xff0c;巨头之间战斗要考虑很多&#xff0c;于是它们想到了合作&#xff0c; SpringCloud与alibaba相结合&#xff0c;技术上有人负责更新新的组件&#xff0c;也还…

今年面试太难,我凭借这份Java架构面试指南,成功跳槽涨薪10K

见字如面&#xff0c;这里是阿鑫~ 时光飞逝&#xff0c;转眼2022已经快结束了&#xff0c;最近内卷严重&#xff0c;大环境并不是很好&#xff0c;相信很多小伙伴也在准备明年金三银四的面试计划 ​跳槽加薪 职场中加薪有个屡试不爽的方法&#xff0c;那就是跳槽 每每听到周围…

浮点数运算不精确的问题解决和注意事项(BigDecimal)

总结&#xff1a;浮点数运算不精确的问题本质上是在存储的时候就不精确&#xff0c;这个问题会持续到即使使用到专业的工具类BigDecimal来使用时&#xff0c;如果仅仅只是传double类型做入参时依然会导致运算不精确&#xff0c;所以即使在使用BigDecimal工具类进行构造时也要使…

论文浅尝 | Knowledge Graph Contrastive Learning for Recommendation

笔记整理&#xff1a;刘尧锟&#xff0c;天津大学硕士链接&#xff1a;https://arxiv.org/pdf/2205.00976.pdf动机知识图谱已被用作有用的辅助信息来提高推荐质量。在这些推荐系统中&#xff0c;知识图谱信息通常包含丰富的事实和项目之间的内在语义相关性。然而&#xff0c;此…

Python源码学习新手攻略

Python源码学习是许多编程初学者在学习Python过程中十分重要的一个必经步骤&#xff0c;不仅如此&#xff0c;一些有一定开发经验的程序员想要提升自身&#xff0c;也常常需要阅读并学习优秀核心技术栈的源码。那么我们应该如何开始Python源码学习呢&#xff1f;下面小编就来和…

自学Web前端开发学习讲解 – 入门篇

很多人都对web前端感兴趣&#xff0c;这一期主要聊关于如何入门学习Web前端开发的过程分享&#xff0c;此篇适合想入门初学者&#xff0c;大佬就不用看了。主要内容是以本人这一路自学web前端的一些经验和建议&#xff0c;学习哪些知识&#xff0c;以及如何正确的去学&#xff…

AI绘画火爆,到现在还只是冰山一角?AIGC掀起当代新艺术浪潮

前言&#xff1a; hello&#xff0c;大家好我是Dream。近日&#xff0c;各大社交平台掀起了一股“AI绘图”风潮&#xff0c;很多同学朋友纷纷在社交平台上晒出了属于自己的AI照片&#xff0c;一时间AI相关话题热度高涨。那对于AI绘画以及开启AI内容创作新时代的昆仑万维你究竟了…

东北大学2023分布式操作系统考试题目及答案

Note&#xff1a;答案仅供参考&#xff0c;自己所写&#xff0c;不是标准答案&#xff0c;若发现错误&#xff0c;请指正&#xff0c;谢谢&#xff01; 文章目录考试题目参考答案考试题目 1、简述分布式系统的设计目标中开放性的特点有哪些&#xff1f; 、 、 、 、 、 、 、…

​燕东微科创板上市:市值276亿 亦庄国投与京东方是股东

雷递网 雷建平 12月16日北京燕东微电子股份有限公司&#xff08;简称&#xff1a;“燕东微”&#xff0c;股票代码为&#xff1a;“688172”&#xff09;今日在科创板上市&#xff0c;燕东微本次发行17986.5617万股&#xff0c;发行价21.98元&#xff0c;募资总额39.56亿元。燕…

关于hcaptcha (vm wasm ob)三合一

该文章主要提供交流学习使用&#xff0c;请勿利用其进行不当行为&#xff01; 如本篇文章侵犯了贵公司的隐私&#xff0c;请联系我立刻删除&#xff01; 如因滥用解密技术而产生的风险与本人无关&#xff01; 1 Hcaptcha hCaptcha 旨在解决机器学习中最劳动密集型的问题&am…