Ubuntu22.04安装K8S 1.26.9版本

关闭交换内存

  • 编辑/etc/fstab文件,注释掉#/swap.img none swap sw 0 0该行
  • 重启生效reboot

关闭防火墙

ufw disable

时间同步

# 时间同步:
timedatectl set-timezone "Asia/Shanghai"
sudo apt install ntpdate
sudo ntpdate -u ntp.aliyun.com

# 查看时间
date

加载内核模块

sudo tee /etc/modules-load.d/containerd.conf <<EOF
overlay
br_netfilter
EOF

sudo modprobe overlay
sudo modprobe br_netfilter

设置Kubernetes内核参数

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

使内核参数生效

sudo sysctl --system

安装 Containerd Runtime

# 安装依赖
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

# 使用systemd作为cgroup
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

更换k8s源

curl -s https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/kubernetes-archive-keyring.gpg >/dev/null

echo "deb [signed-by=/etc/apt/trusted.gpg.d/kubernetes-archive-keyring.gpg] https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

sudo apt update

安装Kubectl, Kubeadm and Kubelet

sudo apt update
sudo apt install -y kubeadm=1.26.9-00 kubelet=1.26.9-00 kubectl=1.26.9-00
sudo apt-mark hold kubelet kubeadm kubectl

生成init文件

kubeadm config print init-defaults > kubeadm-init.yaml

修改init文件

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.179        									# 本地IP地址
  bindPort: 6443
nodeRegistration:
  criSocket: unix:///var/run/containerd/containerd.sock
  imagePullPolicy: IfNotPresent
  name: {nodeName}														   # 本地主机名称
  taints: null
---
apiServer:
  timeoutForControlPlane: 4m0s
apiVersion: kubeadm.k8s.io/v1beta3
certificatesDir: /etc/kubernetes/pki
clusterName: kubernetes
controllerManager: {}
dns: {}
etcd:
  local:
    dataDir: /var/lib/etcd
imageRepository: registry.aliyuncs.com/google_containers	# 阿里镜像
kind: ClusterConfiguration
kubernetesVersion: 1.26.9																	# K8S集群版本号
networking:
  dnsDomain: cluster.local
  serviceSubnet: 10.96.0.0/12
scheduler: {}

Kubernetes 控制平面节点初始化

kubeadm init --config=kubeadm-init.yaml

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

# root用户还需要执行
vim /root/.bashrc
export KUBECONFIG=/etc/kubernetes/admin.conf
source /root/.bashrc
  • 若初始化失败则给container添加代理
  • 重新初始化需要执行kubeadm reset命令

给Container添加代理

mkdir /etc/systemd/system/containerd.service.d
vim /etc/systemd/system/containerd.service.d/http-proxy.conf

[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"   # 根据实际情况进行修改
Environment="HTTPS_PROXY=http://127.0.0.1:7890"  # 根据实际情况进行修改
Environment="NO_PROXY=localhost,127.0.0.0/8,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16,.svc,.cluster.local,.ewhisper.cn"

systemctl daemon-reload
systemctl restart containerd.service

安装Calico网络插件

kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/calico.yaml

kubectl get pods -n kube-system

查看POD状态

kubectl get pods -A

Master容忍调度(可选,仅用于单台机器测试)

kubectl taint nodes {nodeName} node-role.kubernetes.io/control-plane:NoSchedule-

测试集群

kubectl create deployment nginx-app --image=nginx --replicas=2

image.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值