首页 > 系统相关 >Ubuntu20 安装 K8S

Ubuntu20 安装 K8S

时间:2024-05-26 19:33:32浏览次数:22  
标签:K8S kubernetes -- apt etc token master Ubuntu20 安装

准备

apt-get 修改国内源
mv /etc/apt/sources.list /etc/apt/sources.list.bk
cat > /etc/apt/sources.list <<EOF
deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse 
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse 
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse 
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse 
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse 
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse 
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse 
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse 
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse 
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
EOF
更改机器名
hostnamectl set-hostname master  # master 节点
hostnamectl set-hostname node1  # node1 节点
关闭swap和防火墙
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab
开启IPv4转发

每台机器都要设置

cat <<EOF | tee /etc/sysctl.d/k8s.conf 
net.bridge.bridge-nf-call-iptables = 1 
net.bridge.bridge-nf-call-ip6tables = 1 
net.ipv4.ip_forward = 1
EOF

sysctl --system
sudo modprobe br_netfilter
echo '1' | tee /proc/sys/net/bridge/bridge-nf-call-iptables 

cat >> /etc/sysctl.conf <<EOF
net.bridge.bridge-nf-call-iptables = 1 
net.ipv4.ip_forward = 1
EOF

sysctl -p 
echo "br_netfilter" > /etc/modules-load.d/br_netfilter.conf

安装K8S相关

安装containerd
apt install containerd
配置crictl客户端
cat > /etc/crictl.yaml <<EOF
runtime-endpoint: unix:///run/containerd/containerd.sock
image-endpoint: unix:///run/containerd/containerd.sock
timeout: 10
debug: true
EOF
安装kubuadm、kubelet、kubectl
apt install -y apt-transport-https curl
curl -fsSL 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 update
apt install -y kubelet kubeadm kubectl
systemctl enable kubelet
初始化master节点
拉取下载镜像
kubeadm config images pull --image-repository=registry.aliyuncs.com/google_containers --kubernetes-version="v1.28.2"
master 初始化(node 节点不需要)
kubeadm init --kubernetes-version=v1.28.2 --pod-network-cidr=10.244.0.0/16 --service-cidr=10.96.0.0/12 --image-repository=registry.aliyuncs.com/google_containers --upload-certs
master 查看 token 和 discovery-token-ca-cert-hash
kubeadm token list  # 查看 token 列表,node 节点加入 master 时 token 的值
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'  # node 节点连接 master 时 --discovery-token-ca-cert-hash 参数的值
node节点加入master
kubeadm join $master_ip:6443 --token $token --discovery-token-ca-cert-hash sha256:$hash_value  # $master_ip: master节点的IP;$token:master节点上“kubeadm token list”出来的token值;$hash_value:openssl x509....出来的值

部署应用

kubectl get deployment
kubectl get service
kubectl get pod -A

遇到问题:

执行 kubeadm init 时报错: [ERROR CRI]: container runtime is not running:

报错内容:

error execution phase preflight: [preflight] Some fatal errors occurred:  
[ERROR CRI]: container runtime is not running: output: time="2023-02-20T08:33:48Z" level=fatal msg="validate service connection: CRI v1 runtime API is not implemented for endpoint "unix:///var/run/containerd/containerd.sock": rpc error: code = Unimplemented desc = unknown service runtime.v1.RuntimeService"  
, error: exit status 1  
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`  
To see the stack trace of this error execute with --v=5 or higher

service containerd status # 显示running
解决:

mv /etc/containerd/config.toml /etc/containerd/config.toml.bk
service containerd restart
执行 kubeadm init 时报错: error execution phase preflight: [preflight] Some fatal errors occurred:

报错内容:

[init] Using Kubernetes version: v1.28.2
[preflight] Running pre-flight checks
error execution phase preflight: [preflight] Some fatal errors occurred:
	[ERROR FileAvailable--etc-kubernetes-manifests-kube-apiserver.yaml]: /etc/kubernetes/manifests/kube-apiserver.yaml already exists
	[ERROR FileAvailable--etc-kubernetes-manifests-kube-controller-manager.yaml]: /etc/kubernetes/manifests/kube-controller-manager.yaml already exists
	[ERROR FileAvailable--etc-kubernetes-manifests-kube-scheduler.yaml]: /etc/kubernetes/manifests/kube-scheduler.yaml already exists
	[ERROR FileAvailable--etc-kubernetes-manifests-etcd.yaml]: /etc/kubernetes/manifests/etcd.yaml already exists
[preflight] If you know what you are doing, you can make a check non-fatal with `--ignore-preflight-errors=...`
To see the stack trace of this error execute with --v=5 or higher

解决:删除 /etc/kubernetes/manifests

mv /etc/kubernetes/manifests /etc/kubernetes/manifests-bk

标签:K8S,kubernetes,--,apt,etc,token,master,Ubuntu20,安装
From: https://www.cnblogs.com/aaron-agu/p/18214175

相关文章

  • K8S认证|CKA题库+答案| 15. 备份还原Etcd
    目录15、 备份还原EtcdCKA v1.29.0模拟系统  下载试用题目: 开始操作:1)、切换集群2)、登录master并提权3)、备份Etcd现有数据4)、验证备份数据快照5)、查看节点和Pod状态 6)、创建目录​7)、执行Etcd数据恢复命令8)、验证恢复情况 ​9)、更改Etcd配置10)、重启kubel......
  • Mac 安装 Homebrew
    HomeBrew安装/bin/zsh-c"$(curl-fsSLhttps://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"选择1。清华大学下载brewbrew安装期间选择中科大国内镜像源卸载脚本/bin/zsh-c"$(curl-fsSLhttps://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninsta......
  • Linux安装Anaconda
    清华大学开源软件镜像站https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/下载好安装bashAnaconda3-2020.07-Linux-x86_64.sh空格之后yes安装环境变量重新连接......
  • 重新安装Cakewalk报错
    重新安装Cakewalk报错,大概率是因为没卸载干净导致的,很多软件卸载不彻底,会留下注册表和系统文件,关于Cakewalk的彻底卸载,可以点这里国外网址加载慢且是英文帖子,所以我这边也大概翻译搬运一下首先按Windows+R键输入regedit进入注册表编辑器如果担心删错注册表,可以提前导出备份一......
  • OneForall工具的下载安装和使用(Windows和Linux)
    目录OneForall的介绍OneForall的下载OneForall的安装安装要求安装步骤(git版)安装(kali)OneForall的使用命令在Windows在Linux(kali)OneForall的结果说明免责声明本文所提供的文字和信息仅供学习和研究使用,请读者自觉遵守法律法规,不得利用本文所提供的信息从事任何违......
  • KUbuntu安装CIscoPacketTracer
    注意:这是正版教程,需要你有Cisco账号。第一步注册账号先去思科官网注册账号:Cisco可以先尝试这个链接,如果可以的话就跳过第二步,直接看第三步,如果链接失效了请继续第二步。PackeTracer第二步下载PacketTracer思科规定下载PacketTracer需要先免费注册任意一门课程,登陆好的页面如......
  • docker下安装mysql,并实现主从复制
    1mysql的安装与启动1.1拉取mysql5.7的镜像dockerpullmysql:5.71.2运行dockerrun:运行Docker容器的命令。--restart=always:指定容器在退出时总是重新启动。这意味着,无论容器是正常退出还是异常退出,Docker将自动重新启动这个容器。--privileged=true:......
  • centos7安装postgresql-15
    摘要:本文将提供一个详细的教程,介绍如何在CentOS7操作系统上安装最新版本的PostgreSQL15。您将学习到如何添加PostgreSQL官方软件仓库,并使用yum命令进行安装和配置。1.引言PostgreSQL是一个功能强大的开源关系型数据库管理系统,被广泛用于企业级应用和数据存储。安装最新版......
  • Visio 2021下载教程|visio流程图软件的完整安装步骤
    Visio是微软公司(Microsoft)推出的一款流程图和图表制作软件。它提供了丰富的图形库和工具,可以帮助用户创建各种类型的图表、流程图、组织结构图、平面布局图等。目前最新版也是用的最广泛的版本为Visio2021。MicrosoftVisio2003-2021全版本软件安装包下载:https://pan.baid......
  • 03 安装及管理应用程序
    1、Linux命令与应用程序的关系在Linux操作系统中,一直以来对命令和应用程序没有特别明确的区别,因此对安装软件包与安装应用程序这两种说法,并不做严格的区分。2、Linux应用程序的组成安装完一个软件包之后,可能会向系统中复制大量的数据文件,并进行相关设置。在Linux操作系统中......