首页 > 系统相关 >Ubuntu22安装K8s(外网环境)

Ubuntu22安装K8s(外网环境)

时间:2024-10-29 08:48:05浏览次数:7  
标签:get -- sudo apt etc Ubuntu22 docker K8s 安装

关于docker和k8s及组件的安装及安装源设置可以参考阿里云

docker安装:docker-ce镜像_docker-ce下载地址_docker-ce安装教程-阿里巴巴开源镜像站

k8s源及组件:kubernetes镜像_kubernetes下载地址_kubernetes安装教程-阿里巴巴开源镜像站

注意:命令未说明哪台主机即所有节点

1. 安装docker

卸载旧版本

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done

1.1. 使用apt存储安装

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

1.2. 安装docker包

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

1.3. 安装后设置

1.3.1. 设置开机启动

sudo systemctl start docker
sudo systemctl enable docker

1.3.2. 以非root用户管理docker

  1. 创建docker组
    sudo groupadd docker
  2. 将当前用户添加到docker组
    sudo usermod -aG docker $USER
  3. 注销并重新登录

2. 安装kubeadm前配置

2.1. 关闭swap

sudo swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab

2.2. 修改系统内核参数

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
EOF

# 应用 sysctl 参数而不重新启动
sudo sysctl --system
# sysctl -p /etc/sysctl.d/k8s.conf 加载配置

2.3. 配置时间同步

apt install -y chrony
systemctl status chronyd
systemctl start chronyd
systemctl enable chronyd
date

2.4. 加载网桥过滤模块

sudo modprobe overlay
sudo modprobe br_netfilter
lsmod | grep overlay
lsmod | grep br_netfilter

2.5. 优化ulimit

cat > sudo /etc/security/limits.conf <<EOF
soft nofile 65535
hard nofile 65536
EOF
# 或者用此方法
vim /etc/security/limits.conf
soft nofile 65535
hard nofile 65536

执行 ulimit -n 65535 立即生效。

2.6. 配置ipvs模块

apt install ipset ipvsadm -y


# Ubuntu 
# 检查
lsmod | grep ip_vs
sudo modprobe ip_vs
 # 轮询调度算法
sudo modprobe ip_vs_rr 
# 加权轮询调度算法
sudo modprobe ip_vs_wrr 
# 最小连接数调度算法
sudo modprobe ip_vs_lc  

# 查看对应的模块是否加载成功
[root@master ~]# lsmod | grep -e ip_vs -e nf_conntrack_ipv4

2.7. 安装及仓库配置

2.7.1. 更新索引并下载密钥

更新 apt 包索引并安装使用 Kubernetes apt 仓库所需要的包:

sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gpg

# 下载签名密钥
sudo mkdir -p -m 755 /etc/apt/keyrings
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.31/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

在低于 Debian 12 和 Ubuntu 22.04 的发行版本中,/etc/apt/keyrings 默认不存在。 应在 curl 命令之前创建它。

2.7.2. 添加仓库

此仓库仅包含适用于 Kubernetes 1.31 的软件包

# 此操作会覆盖 /etc/apt/sources.list.d/kubernetes.list 中现存的所有配置。
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.31/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list
2.7.2.1. 安装k8s组件

(1)安装kubelet kubeadm kubectl

sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

(2)配置kubelet的cgroup - - 可选

systemctl stop kubelet
vi /etc/sysconfig/kubelet
# 修改为
KUBELET_CGROUP_ARGS="--cgroup-driver=systemd"
KUBE_PROXY_MODE="ipvs"

2.7.3. 修改配置

vi /etc/containerd/config.toml
注释掉其中的:disabled_plugins = ["cri"]
systemctl daemon-reload
sudo systemctl restart containerd

2.8. 部署Kubernetes集群

2.8.1. 镜像下载(所有节点)

如果可以VPN上网,直接:

kubeadm config images pull

2.8.2. 集群初始化(master)

sudo kubeadm init \
    --pod-network-cidr=10.244.0.0/16 \
    --service-cidr=10.96.0.0/12 \
    --apiserver-advertise-address=192.168.226.70



# 创建必要文件,使非 root 用户可以运行 kubectl
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

# 加入节点
kubeadm join 192.168.226.80:6443 --token jtkmbb.k47my5fsg12kymn2 --discovery-token-ca-cert-hash sha256:266f68e2e53c96b1cbcb774a779b3c1e975a1fb17c7b8e00f63b97db8f740e37 --node-role=worker

2.8.3. 安装网络插件

# 获取flannel配置文件
wget https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
# 使用配置文件启动flannel
kubectl apply -f kube-flannel.yml

2.8.4. 查看节点信息

kubectl get nodes

3. 问题处理

3.1. 节点无法使用kubectl命令

将master节点下/etc/kubernetes/admin.conf文件下传到其他节点

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

3.2. 查看镜像

当前k8s使用的容器进行时为containerd,所以使用docker命令无法查看

使用命令:crictl images可查看

告警信息处理

编辑文件 vi /etc/crictl.yaml

runtime-endpoint: unix:///run/containerd/containerd.sock

标签:get,--,sudo,apt,etc,Ubuntu22,docker,K8s,安装
From: https://blog.csdn.net/weixin_64103654/article/details/143312113

相关文章

  • VMwareWorkstation pro 17下载与安装
    1、安装包 VMwareWorkstationpro17:链接:https://pan.quark.cn/s/c75e892c4705提取码:YvyF2、安装教程1)       双击安装,弹窗安装对话框   2)       点击下一步 勾选我接受许可协议中的条款  3)       更改安装路径 4)安装到D......
  • 使用node的npm安装包遇到的问题
    1最开始安装出现的问题是执行后卡顿出来以下网络相关的错误2搜索后执行命令切换到淘宝镜像后在执行,但是第一我仔细看报错信息,就又切换官网镜像了,又报了1的错误,然后又切回淘宝镜像分析错误信息。发现是安装node的目录用户没有写的权限 3.修改node安装目录文件权限后,在设置一......
  • Debian12 搭建LNMP环境,配置SSL证书,安装WordPress
    一、安装并配置PHPSSH连接上VPS之后,我们先更新一下系统组件,使用下面的命令。aptupdate-y&&aptupgrade-y接着输入下面的命令安装PHP和相关组件aptinstallphp-fpmphp-mysqlphp-gdphp-cliphp-curlphp-mbstringphp-zipphp-opcachephp-xmlphp-mysqli-y查看/et......
  • AvaloniaUI项目离线开发全攻略:IDE安装、模板应用与NuGet私有化部署一站式解决
    1.引言在网络受限或完全离线的环境中开发.NET项目(本文示例为AvaloniaUI项目),可能会遇到一些挑战。本文将为您提供一套完整的离线开发解决方案,包括IDE的安装、AvaloniaUI模板的配置、私有化NuGet服务的部署以及NuGet包的制作和上传等。2.IDE安装指南VisualStudio2022安装V......
  • MacOS上Homebrew 安装、配置、更改国内镜像源及使用教程
    Homebrew笔记1.介绍官网:https://brew.sh/对于习惯了使用命令来完成一切的程序员来说,安装软件这种小事,自然是能够用命令解决,就不用图形界面选择。但是在Linux中,我们有yum、apt、dnf、pkg等命令来完成软件的安装,macOS却并未为我们提供一个好用的包管理器,帮助我们更......
  • Prometheus和Grafana的安装部署
    初识Prometheus和Grafana通常来说,对于一个运行时的复杂系统,如果系统出了问题是很难排查的。因为你是不太可能在运行时一边检查代码一边调试的。因此,你需要在各种关键点加上监控,通过监控获取的数据,指导我们进一步工作,解决问题。用开车作为例子:车子本身是一个极其复杂的系统,而......
  • Hexo安装使用手册
    Hexo搭建教程知乎教程夜星梦尘CSDN个性化搭建Hexo文档Hexo中文文档STUM文档Formatter介绍属性名描述是否必需默认值title页面标题是-date页面创建日期是-type标签、分类和友情链接三个页面需要配置是-updated页面更新日期否-description页面描述否-keywords页面关......
  • Win7 64位系统如何快速安装DirectX?从下载到安装一步不落的Win7 64位DirectX安装指南
    在Windows764位系统上安装DirectX是确保游戏和其他图形密集型应用程序正常运行的重要步骤。DirectX是一组多媒体API,用于处理游戏中的图形、声音和输入。本文将为您提供一个详细的安装指南,从下载到安装,一步不落。一、准备工作确认系统版本:确保您的电脑运行的是Windows7......
  • centos中docker安装mysql
    用来记录1先升级yumupdate,遇到问题,解决在上篇centos7yum报错Cannotfindavalidbaseurlforrepo:base/7/x86_642安装docker需要的工具包3配置docker的yum源位置报错,网上查询说是因为国内访问不到docker官方镜像,但是直接在网页里打开连接可以下载,换成阿里云后成......
  • postgresql 下载安装
    一、postgresql下载pg官网:postgres.org一般推荐用源码安装,下载.tar.gz包二、安装本文以12.6版本安装为例:2.1、安装前要求和环境配置#1、要求GNUmake版本3.80或以上(GNUmake有时以名字gmake安装),要测试make版本可以使用以下命令(如果是安装其他版本的pg具体要求make......