ubuntu22安装k8s-1.24.17

安装k8s集群

1 IP地址分配

⚠️ 注意:此处的集群环境

序号IP地址主机名称节点备注
1192.168.2.160mastermaster管理节点
2192.168.2.161node1worker工作节点、可升级为管理节点
3192.168.2.162node2worker工作节点、可升级为管理节点
4192.168.2.163node3worker数据节点、可升级为管理节点

⚠️ 注意:docker版本:20.10.24,为了兼容k8s版本,此版本自带docker compose

2 安装docker

2.1 配置基础环境

# (1)更新安装包
sudo apt update
 
# (2)配置内存
# 临时关闭虚拟内存
sudo swapoff -a
 
# 永久关闭虚拟内存
sudo vim /etc/fstab
# 注释掉下面一行即可
# /swap.img                                 none            swap    sw              0       0
 
# (3)关闭防火墙
# 查看防火墙状态
systemctl status ufw
# 关闭防火墙
systemctl stop ufw
# 禁用防火墙
sudo ufw disable

2.2 安装docker

⚠️ 注意:docker版本:24.0.9

# 更新安装包
sudo apt update

# 添加Docker官方GPG密钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
 
# 添加docker源
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

# 查看docker稳定版列表,可省略
apt-cache madison docker-ce

# 安装docker,可以不指定版本号,默认安装最新版本
sudo apt-get install docker-ce=5:20.10.16~3-0~ubuntu-jammy

# 设置开机启动
systemctl enable docker

阿里云镜像加速

# 创建目录
sudo mkdir -p /etc/docker

# 创建文件
sudo touch daemon.json

# 编辑文件
sudo vim daemon.json

# 向文件中添加内容
{
  "registry-mirrors": ["https://wh5ewvnk.mirror.aliyuncs.com"]
}


# 生效配置
sudo systemctl daemon-reload

# 重启docker
sudo systemctl restart docker

3 安装k8s

⚠️ k8s版本选择:1.24.17-00

⚠️ 选择高版本,Kubernetes 1.24 版本前,k8s使用Dockershim组件实现K8s与Docker运行时( Docker Runtime Interface ,DRI)通信。随着 Dockershim 的弃用,Kubernetes推荐使用Containerd容器运行时,不使用Docker上层,直接管理容器的生命周期底层功能,包括容器的创建、启动、停止和删除等。

3.1 安装基础环境(全部节点)

# 配置安装环境
sudo apt-get update && sudo apt-get install -y apt-transport-https
 
# 添加安装密钥
curl -fsSL https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
 
# 添加k8s镜像源
# 进入/etc/apt/sources.list.d目录下
cd /etc/apt/sources.list.d

# 创建kubernetes.list文件
sudo touch kubernetes.list

# 编辑kubernetes.list
sudo vim kubernetes.list

# 在kubernetes.list文件中添加地址如下
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
 
# 更新安装包
sudo apt-get update

3.2 安装containerd(全部节点)

安装基础

# 安装依赖
sudo apt-get install -y apt-transport-https ca-certificates curl

# 安装containerd
sudo apt-get -y install containerd
sudo systemctl enable containerd
sudo systemctl start containerd

# 查看状态
systemctl status containerd

创建配置

# 创建目录和配置文件,默认存在,可以不执行
sudo mkdir /etc/containerd
sudo touch /etc/containerd/config.toml

# 生成配置文件
sudo containerd config default > config.toml

# 将文件复制到/etc/containerd,覆盖原有config.toml的文件
sudo mv config.toml /etc/containerd/

# 修改配置config.toml,内容参见下文
sudo vim /etc/containerd/config.toml

# 重启containerd
sudo systemctl restart containerd

配置的内容

# 1 修改SystemdCgroup参数为true,默认为false,在文件的137行
[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
	……
	# 修改的参数
	SystemdCgroup = true


# 2 修改sandbox_image参数,值一定要与下文“kubeadm config images list --kubernetes-version=v1.24.17 --image-repository=registry.aliyuncs.com/google_containers”命令输出的pause版本和tag保持一致,否则Node节点的Pod一直 CrashLoopBackOff,并且查询 kubectl logs 时也没有任何错误,此处我的版本为阿里云3.7

# 默认参数
# sandbox_image = "registry.k8s.io/pause:3.8"
# 修改的参数
sandbox_image = "registry.aliyuncs.com/google_containers/pause:3.7"

3.3 安装k8s(全部节点)

安装基础依赖

# 查看k8s版本号
apt-cache madison kubelet

# 安装k8s
sudo apt-get install kubelet=1.24.17-00 kubeadm=1.24.17-00 kubectl=1.24.17-00
 
# 设置开机启动
systemctl enable kubelet
 
# 查看k8s版本
kubectl version --short
 
# 查看kubelet状态
# Active: active (running)是启动状态
systemctl status kubelet
 
# 停止kubelet
systemctl stop kubelet
 
# 启动kubelet
systemctl start kubelet

配置容器的endpoint

# 使运行时生效
sudo crictl config runtime-endpoint unix:///run/containerd/containerd.sock
sudo crictl config image-endpoint unix:///run/containerd/containerd.sock
# 重启服务
sudo systemctl restart containerd

3.4 初始化master节点

查看镜像列表

# 查看需要的镜像
kubeadm config images list --kubernetes-version=v1.24.17 --image-repository=registry.aliyuncs.com/google_containers

初始化master节点

⚠️ 注意IP地址变化

# 注意,如果用虚拟机,内核数量必须要2个及以上。
# --image-repository				镜像加速,指定初始化下载的镜像。
# --apiserver-advertise-address		直接使用当前master主机地址
# --kubernetes-version				k8s版本,可以不指定,缺省情况会用最新的
# --service-cidr					service网络地址(建议使用10.96.0.0/12,也可以不设置),不可与主机,pod网络地址重复
# --pod-network-cidr 				pod网络地址(建议使用10.244.0.0/16),不可与主机,service网络地址重复,与后面的flannel相关
# --v								日志等级,5级以上会打印更详细的日志,--v=6开启详细日志打印
 
sudo kubeadm init \
--image-repository=registry.aliyuncs.com/google_containers \
--apiserver-advertise-address=192.168.2.160 \
--kubernetes-version=v1.24.17 \
--service-cidr=10.96.0.0/12 \
--pod-network-cidr=10.244.0.0/16 \
--v=6

初始化成功

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

Alternatively, if you are the root user, you can run:

  export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
  https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 192.168.2.160:6443 --token s5gumt.fsd9clxhin5odbhn \
        --discovery-token-ca-cert-hash sha256:0de06dce3e0792c8025a05bccef5f52b8dea3768f8eecf21dc483edfc4e67788

配置master节点

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

配置node节点

# 将节点添加到集群中
sudo kubeadm join 192.168.108.160:6443 --token s5gumt.fsd9clxhin5odbhn \
        --discovery-token-ca-cert-hash sha256:0de06dce3e0792c8025a05bccef5f52b8dea3768f8eecf21dc483edfc4e67788 

管理token

# 查看token
kubeadm token list
 
# 创建token
kubeadm token create
 
# 查看discovery-token-ca-cert-hash
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'

3.5 安装flannel(master节点)

⚠️ 注意:在安装flannel前“kube-system coredns”是“Pending”状态。

在线安装很难成功,根据需要使用别的办法。

# 下载配置文件,可以用最新版本
wget https://github.com/flannel-io/flannel/releases/download/v0.25.5/kube-flannel.yml

# 查看flannel中的镜像
cat kube-flannel.yml |grep image|uniq

# 安装flannel
kubectl apply -f kube-flannel.yml

3.6 管理节点

# 设置节点角色
kubectl label node node1 kubernetes.io/role=worker
kubectl label node node2 kubernetes.io/role=worker
kubectl label node node3 kubernetes.io/role=worker

# 在master节点上查看集群结点
kubectl get nodes

# 删除节点
# 删除节点后,需要在相应的子节点
sudo kubectl delete nodes node1
 
# 重置主机点,慎重操作!!
# 手动删除配置文件
sudo rm -rf  /etc/kubernetes/pki/ca.crt
sudo rm -rf  /etc/kubernetes/kubelet.conf
sudo rm -rf  $HOME/.kube
 
# 重置子节点
sudo kubeadm reset
# 重新加载配置文件
systemctl daemon-reload
 
# 重置子节点,使用以下命令即可
sudo kubeadm reset

3.7 简单管理pod

# 查看Pod
# -A: 显示所有Pod
kubectl get pod
# 查看全部空间下的pod
kubectl get pod --all-namespaces -o wide
 
# 查看Pod的更多概要信息
# -o json: 表示以json方式查看Pod详细信息
# -o yaml: 表示以yaml方式查看Pod详细信息
kubectl get pod -o wide
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据提供的引用内容,以下是使用kubeadm部署Kubernetes 1.27.4的步骤: 1. 确认k8s版本和环境:首先,确认您要部署的Kubernetes版本为1.27.4,并确保您的环境满足部署要求,例如操作系统版本、CPU和内存等。 2. 创建配置文件:根据您的需求,创建Kubernetes集群的配置文件,包括证书、网络插件、镜像源等。您可以根据实际情况进行配置。 3. 安装kubeadm:在两台Ubuntu 16.04 64位双核CPU虚拟机上安装kubeadm。您可以使用以下命令安装kubeadm: ```shell sudo apt-get update sudo apt-get install -y kubeadm ``` 4. 初始化Master节点:在其中一台虚拟机上执行以下命令初始化Master节点: ```shell sudo kubeadm init --kubernetes-version=1.27.4 ``` 该命令将会初始化Kubernetes Master节点,并生成一个加入集群的命令。 5. 部署网络插件:根据您的配置文件选择网络插件,这里以flannel为例。在Master节点上执行以下命令部署flannel网络插件: ```shell kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml ``` 6. 加入Worker节点:在另一台虚拟机上执行Master节点生成的加入集群的命令,将其加入到Kubernetes集群中: ```shell sudo kubeadm join <Master节点IP>:<Master节点端口> --token <Token值> --discovery-token-ca-cert-hash <证书哈希值> ``` 请将`<Master节点IP>`、`<Master节点端口>`、`<Token值>`和`<证书哈希值>`替换为实际的值。 至此,您已成功使用kubeadm部署了Kubernetes 1.27.4集群。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值