Ubuntu部署k8sV1.27+containerd

本文中如果有的依赖没办法用apt-get安装,可以直接访问我的网盘,用tar包安装
链接:https://pan.baidu.com/s/1hiozH7KPqKa6IbwBIPb7Ng?pwd=8s4i
提取码:8s4i

1、登录节点使用 hostnamectl 命令设置 hostname(所有主机)
例:hostnamectl set-hostname k8s-master

2、在每个节点上的 /etc/hosts 文件中添加以下内容(所有主机操作)
172.18.10.11 k8s-master
172.18.10.12 k8s-worker1
172.18.10.13 k8s-worker2

3、禁用 swap & 添加内核设置(所有主机操作)
swapoff -a
sed -i ‘/swap/ s%/swap%#/swap%g’ /etc/fstab

4、在所有节点上加载以下内核模块(所有主机操作)
tee /etc/modules-load.d/containerd.conf <<EOF
overlay
br_netfilter
EOF
modprobe overlay
modprobe br_netfilter

5、为 Kubernetes 设置以下内核参数,运行如下的tee命令(所有主机操作)
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 --system

6、安装容器运行时依赖项(所有主机操作)
apt install -y curl gnupg2 software-properties-common apt-transport-https ca-certificates

7、启用 docker 存储库(所有主机操作)
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/docker.gpg

add-apt-repository “deb [arch=amd64] Index of linux/ubuntu/ $(lsb_release -cs) stable”

8、安装 containerd(所有主机操作)
apt update
apt install -y containerd.io(如果报错找不到containerd.io,那就用tar包去装,如果没报错正常安装上了,那就可以跳过下面实线内的步骤)
tar Cxzvf /usr/local containerd-1.7.0-linux-amd64.tar.gz
#创建启动containerd的systemd服务
cat << EOF >> /lib/systemd/system/containerd.service
[Unit]
Description=containerd container runtime
Documentation=https://containerd.io
After=network.target local-fs.target

[Service]
ExecStartPre=-/sbin/modprobe overlay
ExecStart=/usr/local/bin/containerd

Type=notify
Delegate=yes
KillMode=process
Restart=always
RestartSec=5

Having non-zero Limit*s causes performance problems due to accounting overhead

in the kernel. We recommend using cgroups to do container-local accounting.

LimitNPROC=infinity
LimitCORE=infinity
LimitNOFILE=infinity

Comment TasksMax if your systemd version does not supports it.

Only systemd 226 and above support this version.

TasksMax=infinity
OOMScoreAdjust=-999

[Install]
WantedBy=multi-user.target
EOF
(到这里tar包安装就结束了,回归正常的配置步骤)

9、配置 containerd,使它使用 systemd 作为 cgroup(所有主机操作)
containerd config default | sudo tee /etc/containerd/config.toml >/dev/null 2>&1

sed -i ‘s/SystemdCgroup = false/SystemdCgroup = true/g’ /etc/containerd/config.toml

10、将镜像地址换为阿里云地址,否者在初始化时无法拉取到镜像(所有主机操作)
sed -i “s#registry.k8s.io/pause#registry.aliyuncs.com/google_containers/pause#g” /etc/containerd/config.toml
重启并启用 containerd 服务
systemctl daemon-reload
systemctl restart containerd
systemctl enable containerd

12、添加 Kubernetes apt 存储库,下载 Google Cloud 公开签名秘钥(master操作)
curl -fsSLo /etc/apt/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg
此操作需要看脸,若脸黑访问不到的话,直接用我网盘里的apt-key.gpg
cp ~/apt-key.gpg /usr/share/keyrings/kubernetes-archive-keyring.gpg 手动cp一下

13、添加 Kubernetes apt仓库(master操作)
echo “deb [signed-by=/etc/apt/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main” | sudo tee /etc/apt/sources.list.d/kubernetes.list
更新索引(所有主机操作)
apt-get update(如果源用不了换一下源,如果还不行,就直接跳过这步,本人亲测可行)
换源
echo “deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main” | sudo tee /etc/apt/sources.list.d/kubernetes.list

14、安装Kubectl, kubeadm 和 kubelet(所有主机操作)

安装基础环境

apt-get install -y ca-certificates curl software-properties-common apt-transport-https curl

curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -

执行配置k8s阿里云源

vim /etc/apt/sources.list.d/kubernetes.list
#加入以下内容
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main

执行更新

apt-get update -y
安装工具
apt-get install -y kubelet kubeadm kubectl
锁定版本,不让k8s组件自动升级(所有主机操作)
apt-mark hold kubelet kubeadm kubectl

15、修改containerd的沙盒(所有主机操作)
vi /etc/containerd/config.toml
在这里插入图片描述

systemctl daemon-reload
systemctl restart containerd
systemctl enable containerd

16、初始化kubernetes集群(master操作)
kubeadm init --image-repository registry.aliyuncs.com/google_containers --apiserver-advertise-address=172.18.10.11 --kubernetes-version v1.27.1 --pod-network-cidr=10.244.0.0/16 --v=5
在这里插入图片描述

如果初始化失败,重新初始化前需要执行kubeadm reset -f来清除初始化失败的文件
用初始化完成后的命令加入node节点(node操作)
kubeadm join k8s-master:6443 --token 04bkvu.6yc4clf05z009t1b --discovery-token-ca-cert-hash sha256:088e804bb2658add7bfd6f6620beb0f6df5307c3371a7d623f8563b5ac30347d
查看node状态(NotReady是正常的,后续装完网络插件就好了)
在这里插入图片描述

如果以后需要添加新的node,需要重新生成新的token以及公钥哈希值
kubeadm token create
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed ‘s/^ .* //’
kubeadm join 192.168.80.137:6443 --token 新生成的Token填写此处 --discovery-token-ca-cert-hash sha256:获取的公钥哈希值填写此处
17、在主节点安装flannel网络插件(master操作)
curl -O https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
如果无法下载flannel的yaml,那就用我网盘的直接apply执行就可以了
kubectl apply -f kube-flannel.yml
查看节点和pod都已经Running了
在这里插入图片描述
在这里插入图片描述

19、在主节点输入集群交互命令,不执行的话,node节点无法使用kubectl(所有主机操作)
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown ( i d − u ) : (id -u): (idu):(id -g) $HOME/.kube/config

到此结束!!!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ubuntu是一个自由开源的操作系统,其中有很多的工具和服务可以用于搭建与开发Web应用。其中,常用的Web应用栈是使用Nginx作为Web服务器,UWSGI作为应用程序服务器,Django作为Web框架,MySQL作为关系型数据库。 要安装和配置这些服务,需要进行以下步骤: 1. 安装Ubuntu操作系统,可以选择最新版本的Ubuntu LTS或者最新的Ubuntu发行版。 2. 安装Nginx服务,并配置Nginx服务器来处理并转发HTTP请求。这里可以使用apt-get install命令来安装Nginx包。 3. 安装UWSGI服务,并配置UWSGI服务器来处理Django应用程序。这里可以使用pip install命令来安装UWSGI包。 4. 安装Django,并编写一个基本的Django应用程序。然后配置UWSGI服务器以运行Django应用程序。可以使用pip install命令来安装Django包。可以使用此教程 - https://uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html 5. 安装MySQL数据库服务,并配置MySQL服务器以使用Django应用程序。可以使用apt-get install命令来安装MySQL包。 6. 在Django应用程序中配置MySQL数据库连接参数,并创建 MySQL数据库及表。 7. 配置Nginx服务器以使用UWSGI服务器来处理Django应用程序。可以使用上面的教程来完成这一步骤。 8. 启动Nginx和UWSGI服务器,并测试Django应用程序是否可以访问。 在进行以上的步骤时,需要注意安全措施,防止 Web 应用程序被攻击和入侵。同时,也需要进行充分的测试,保证 Web 应用程序的稳定性和可用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值