Kubernetes v1.24 基于containerd部署
k8s每个节点安装containerd。
containerd安装参考《containerd安装博文》:https://www.cnblogs.com/punchlinux/p/16496094.html
containerd配置
修改containerd的config.toml配置文件,修改k8s的镜像初始化pause底层网络镜像的下载地址
root@master:~# vim /etc/containerd/config.toml
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.7"
再一次重启每个节点的containerd
systemctl restart containerd

每个节点保持时间同步一致,安装chrony。检查时间一致性
chronyc sourcs -V
date

安装kubeadm环境
配置软件仓库
apt-get update && apt-get install -y apt-transport-https
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF
更新软件仓库,并检查源更新
apt-get update
最新的版本则是1.24.3

所有k8s节点都安装kubeadm、kubeadm和kubectl
root@master:~# apt install kubeadm=1.24.3-00 kubectl=1.24.3-00 kubelet=1.24.3-00

查看k8s初始化所需的镜像
root@master:~# kubeadm config images list --kubernetes-version v1.24.3

编写一个shell脚本,修改官方镜像地址为阿里云镜像地址
-n k8s.io则指定k8s 的namespace下载镜像
root@master:~# vim imagedown.sh
nerdctl -n k8s.io pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.24.3
nerdctl -n k8s.io pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.24.3
nerdctl -n k8s.io pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.24.3
nerdctl -n k8s.io pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.24.3
nerdctl -n k8s.io pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.7
nerdctl -n k8s.io pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.5.3-0
所有k8s节点执行脚本,下载镜像

初始化k8s集群
每台k8s节点设置加载模块,内核参数调优
root@master:~# vim /etc/modules-load.d/modules.conf
ip_vs
br_netfilter
root@master:~# modprobe ip_vs
root@master:~# modprobe br_netfilter

内核优化
root@master:~# cat /etc/sysctl.conf
net.ipv4.ip_forward=1
vm.max_map_count=262144
kernel.pid_max=4194303
fs.file-max=1000000
net.ipv4.tcp_max_tw_buckets=6000
net.netfilter.nf_conntrack_max=2097152
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
vm.swappiness=0
root@master:~# sysctl -p

master执行初始化集群
root@master:~# kubeadm init --apiserver-advertise-address=192.168.100.10 \
--apiserver-bind-port=6443 \
--kubernetes-version=v1.24.3 \
--pod-network-cidr=10.100.0.0/16 \
--service-cidr=10.200.0.0/16 \
--service-dns-domain=cluster.local \
--image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers \
--ignore-preflight-errors=swap
选项解释:
--apiserver-advertise-address api-server地址也就是master节点地址
--apiserver-bind-port api-server服务端口号
--kubernetes-version k8s版本号
--pod-network-cidr pod网络的地址建议16位或者8位地址
--service-cidr svc网络地址建议16位或者8位地址与pod网络区别开来
--service-dns-domain=cluster.local 集群dns域名地址,默认为cluster.local
--image-repository k8s镜像下载地址
--ignore-preflight-errors=swap 忽略初始化错位,如果开启了swap,可以忽略这个错误
初始化完成

kubectl凭据配置
kubectl默认使用~/.kube/config文件中凭据信息管理kubernetes。
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
root@master:~# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready control-plane 19m v1.24.3

如果环境变量KUBECONFIG存在,则优先使用境变量KUBECONFIG设置的值。
root@master:~# mv .kube/config .
export KUBECONFIG=/root/config
root@master:~# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master NotReady control-plane,master 102s v1.24.3
等网络配置完成后,STATUS状态由NotReady变更为Ready
还可以通过选项--kubeconfig=''明确指定凭据文件位置。
root@master:~# kubectl get nodes --kubeconfig /root/config
kubernetes对凭据文件名没有要求
root@master:~# mv config kube.conf
root@master:~# kubectl get nodes --kubeconfig kube.conf
配置网络
这里采用calico网络。
官方地址:http://projectcalico.org 或者 https://www.tigera.io/project-calico/
产品文档:https://projectcalico.docs.tigera.io/about/about-calico
calico项目下载地址:
https://projectcalico.docs.tigera.io/getting-started/kubernetes/installation/config-options


下载calico网络插件yaml并修改pod网络地址,此地址为初始化集群指定的pod网络地址段
root@master:~# curl https://projectcalico.docs.tigera.io/manifests/calico-etcd.yaml -O
root@master:~# vim calico-etcd.yaml

root@master:~# kubectl apply -f calico-etcd.yaml

安装calico后,立即创建pod,由于工作节点还未加入到集群,所以calico网络还处于pending状态

节点加入集群
如果master节点初始化集群时终端输出的加入集群命令丢失,可以使用以下命令重新获取:
root@master:~# kubeadm token create --print-join-command

node节点执行加入集群

获取节点状态

nerdctl 查看k8s的namespace下运行的容器
root@master:~# nerdctl -n k8s.io container ls -a

等待一段时间后,查看pod运行状态为running则部署完成
root@master:~# kubectl get pods -A -o wid

查看节点状态

验证k8s正常提供服务:
部署一个名为web的deployment并在宿主机可以访问:
root@master:~# kubectl create deployment web --image nginx:latest --replicas 2 --dry-run=client -o yaml > web.yaml
修改一下镜像拉去规则imagePullPolicy: IfNotPresent
root@master:~# cat web.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
app: web
name: web
spec:
replicas: 2
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- image: nginx:latest
name: nginx
imagePullPolicy: IfNotPresent
创建deployment
root@master:~# kubectl apply -f web.yaml
查看pods

创建service暴露容器端口
root@master:~# kubectl expose deployment web --target-port 80 --port 80 --type NodePort

查看service
root@master:~# kubectl get service

宿主机依次访问每个节点的32316
访问master:

访问node01

访问node02

其他k8s运维小技巧
kubectl命令补全
root@master:~# kubectl completion bash > /etc/bash_completion.d/kubectl
root@master:~# kubeadm completion bash > /etc/bash_completion.d/kubeadm
root@master:~# source /etc/bash_completion.d/kubectl
root@master:~# source /etc/bash_completion.d/kubeadm
kubectl edit 高亮显示
[root@master ~]# vim .bashrc
[root@master ~]# export EDITOR=vim
[root@master ~]# source /root/.bashrc

以上就是关于Kubernetes v1.24版本的安装。如果对你有帮助或有建议疑问可以评论区留言!
Kubernetes v1.24 基于containerd部署的更多相关文章
- Kubeadm搭建高可用(k8s)Kubernetes v1.24.0集群
文章转载自:https://i4t.com/5451.html 背景 Kubernetes 1.24新特性 从kubelet中移除dockershim,自1.20版本被弃用之后,dockershim组 ...
- 基于Kubernetes v1.24.0的集群搭建(三)
1 使用kubeadm部署Kubernetes 如无特殊说明,以下操作可以在所有节点上进行. 1.1 首先我们需要配置一下阿里源 cat <<EOF > /etc/yum.repos ...
- 基于Kubernetes v1.24.0的集群搭建(二)
上一篇文章主要是介绍了,每台虚拟机的环境配置.接下来我们开始有关K8S的相关部署. 另外补充一下上一篇文章中的K8S的changelog链接: https://github.com/kubernet ...
- 基于Kubernetes v1.24.0的集群搭建(一)
一.写在前面 K8S 1.24作为一个很重要的版本更新,它为我们提供了很多重要功能.该版本涉及46项增强功能:其中14项已升级为稳定版,15项进入beta阶段,13项则刚刚进入alpha阶段.此外,另 ...
- Ubuntu 18.04 环境下 kubernetes v1.16.2 单机部署说明
一.安装环境 本次部署使用阿里云ECS 操作系统: Ubuntu 18.04 64位 实例规格: ecs.c6.large 2U4G 二.kubernetes 版本 k8s.gcr.io/kube- ...
- Kubernetes入门(一)——Kubernetes v1.18.5 安装部署
Kubernetes的安装有两种方式:一是使用各个厂商封装的Kubernetes发行版,优点是可以一键安装部署,操作简单,缺点也很明显,若安装过程中某一步骤出现问题,很难定位处理:二是使用官方提供的k ...
- 企业运维实践-丢弃手中的 docker build , 使用Kaniko直接在Kubernetes集群或Containerd环境中快速进行构建推送容器镜像
关注「WeiyiGeek」公众号 设为「特别关注」每天带你玩转网络安全运维.应用开发.物联网IOT学习! 希望各位看友[关注.点赞.评论.收藏.投币],助力每一个梦想. 本章目录 目录 首发地址: h ...
- 基于Containerd安装部署高可用Kubernetes集群
转载自:https://blog.weiyigeek.top/2021/7-30-623.html 简述 Kubernetes(后续简称k8s)是 Google(2014年6月) 开源的一个容器编排引 ...
- 基于docker和cri-dockerd部署kubernetes v1.25.3
基于docker和cri-dockerd部署kubernetes v1.25.3 1.环境准备 1-1.主机清单 主机名 IP地址 系统版本 k8s-master01 k8s-master01.wan ...
随机推荐
- 【Java分享客栈】SpringBoot线程池参数搜一堆资料还是不会配,我花一天测试换你此生明白。
一.前言 首先说一句,如果比较忙顺路点进来的,可以先收藏,有时间或用到了再看也行: 我相信很多人会有一个困惑,这个困惑和我之前一样,就是线程池这个玩意儿,感觉很高大上,用起来很fashion, ...
- VUE3 之 Teleport - 这个系列的教程通俗易懂,适合新手
1. 概述 老话说的好:宰相肚里能撑船,但凡成功的人,都有一种博大的胸怀. 言归正传,今天我们来聊聊 VUE 中 Teleport 的使用. 2. Teleport 2.1 遮罩效果的实现 < ...
- Java 效率工具, 大幅度提高开发效率
你是否有遇到过这样的情况,在开发过程中需要比较两列数据,但使用文本比对工具的话他是按行基准比对的,我还得对每列数据先进行排序,但排序又去哪里排, 想到 excel 可以排序 , 折腾下来,特别麻烦, ...
- netty系列之:netty中常用的xml编码解码器
目录 简介 XmlFrameDecoder XmlDecoder 总结 简介 在json之前,xml是最常用的数据传输格式,虽然xml的冗余数据有点多,但是xml的结构简单清晰,至今仍然运用在程序中的 ...
- Redis进阶知识一览
Redis的持久化机制 RDB: Redis DataBase 什么是RDB RDB∶每隔一段时间,把内存中的数据写入磁盘的临时文件,作为快照,恢复的时候把快照文件读进内存.如果宕机重启,那么内存里的 ...
- 【Java分享客栈】未来迈向高级工程师绕不过的技能:JMeter压测
前言 因为工作需要,久违的从自己的有道云笔记中去寻找压测相关的内容,翻开之后发现还不错,温故一遍后顺便整理出来分享给大家. 题外话,工作8年多,有道云笔记不知不觉都6G多了,扫一眼下来尽是云烟过往,竟 ...
- VMWare中CentOS安装VM-Tools
查看CD-ROM驱动器的设备信息 可以通过下面几个命令来查看 dmesg命令 dmesg | egrep -i --color 'cdrom|dvd|cd/rw|writer' /proc/sys/d ...
- IOI2020 国家集训队作业 泛做
题号 题目名称 rating 算法 完成情况 CF504E Misha and LCP on Tree CF505E Mr.Kitayuta vs. Bamboos CF506E Mr.Kitayut ...
- QC快速充电
QC快充 一.高通QC快充的介绍 二.识别充电类型的芯片介绍 三.QC充电曲线 四.如何在log中看QC充电类型 五.QC3识别错误 六.波形图 一.高通QC快充的介绍 高通QC快充技术,又称Quic ...
- 2021.03.20【NOIP提高B组】模拟 总结
区间 DP 专场:愉快爆炸 T1 题目大意 有 \(n\) 个有颜色的块,连续 \(k\) 个相同颜色的就可以消掉 现在可以在任意位置插入任意颜色的方块,问最少插入多少个可以全部抵消 题解 先把连续的 ...