opencloudosV8.6和openEuler 24安装 k8s

在三台机器上部署 Kubernetes 集群

  • 1.环境准备
  • 2.在所有节点上进行以下步骤
    • [1. 更新系统和安装必要的软件包](#1. 更新系统和安装必要的软件包)
    • [2. 禁用交换分区](#2. 禁用交换分区)
    • [3. 禁用防火墙和SElinux](#3. 禁用防火墙和SElinux)
    • 4.系统主机名
    • 5.设置主机名与IP地址解析
    • 6.配置内核转发及网桥过滤
    • [7. 配置 Docker Cgroup 驱动](#7. 配置 Docker Cgroup 驱动)
    • [8. 添加 Kubernetes 仓库并安装 kubeadm、kubelet 和 kubectl](#8. 添加 Kubernetes 仓库并安装 kubeadm、kubelet 和 kubectl)
    • [9. 安装kubeadm、kubelet、kubectl](#9. 安装kubeadm、kubelet、kubectl)
    • 10.设置开机启动
  • [3.在 Master 节点 (172.16.103.206) 上进行以下步骤](#3.在 Master 节点 (172.16.103.206) 上进行以下步骤)
    • [1. 初始化 Kubernetes 集群](#1. 初始化 Kubernetes 集群)
    • [2. 配置 kubectl](#2. 配置 kubectl)
    • [3. 安装网络插件](#3. 安装网络插件)
    • [4. 生成kubeadm join](#4. 生成kubeadm join)
  • [4.在 Node 节点 (172.16.103.196 和 172.16.103.197) 上进行以下步骤](#4.在 Node 节点 (172.16.103.196 和 172.16.103.197) 上进行以下步骤)
    • [1. 使用 kubeadm join 命令加入集群](#1. 使用 kubeadm join 命令加入集群)
  • 5.验证集群状态
  • 6.部署应用
  • [7.检查服务和 Pod 的状态:](#7.检查服务和 Pod 的状态:)
  • 8.访问nginx

1.环境准备

部署Dokcer查看:

链接: https://blog.csdn.net/qq_40914472/article/details/140693322

Master 节点:172.16.103.206(已安装 Docker)

Node节点:172.16.103.196 和 172.16.103.197 (已安装 Docker)

2.在所有节点上进行以下步骤

1. 更新系统和安装必要的软件包

javascript 复制代码
sudo yum update -y
sudo yum install -y yum-utils device-mapper-persistent-data lvm2

2. 禁用交换分区

javascript 复制代码
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

3. 禁用防火墙和SElinux

javascript 复制代码
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo sed -i 's/^SELINUX=.*$/SELINUX=disabled/' /etc/selinux/config

4.系统主机名

javascript 复制代码
master节点:
hostnamectl set-hostname master
node节点:
hostnamectl set-hostname node1
hostnamectl set-hostname node2

5.设置主机名与IP地址解析

javascript 复制代码
[root@master ~]# cat /etc/hosts 
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
172.16.103.206 master
172.16.103.197 node1
172.16.103.196 node2

6.配置内核转发及网桥过滤

javascript 复制代码
cat >/etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
vm.swappiness = 0
EOF
sysctl --system

7. 配置 Docker Cgroup 驱动

javascript 复制代码
[root@master ~]# cat /etc/docker/daemon.json 
{
 "exec-opts":
  ["native.cgroupdriver=systemd"],
  "registry-mirrors": [
  "https://docker.registry.cyou",
    "https://docker-cf.registry.cyou",
    "https://dockercf.jsdelivr.fyi",
    "https://docker.jsdelivr.fyi",
    "https://dockertest.jsdelivr.fyi",
    "https://mirror.aliyuncs.com",
    "https://dockerproxy.com",
    "https://mirror.baidubce.com",
    "https://docker.m.daocloud.io",
    "https://docker.nju.edu.cn",
    "https://docker.mirrors.sjtug.sjtu.edu.cn",
    "https://docker.mirrors.ustc.edu.cn",
    "https://mirror.iscas.ac.cn",
    "https://dockerhub.icu",
    "https://docker.rainbond.cc"
  ],                        
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }, 
    "bip":"172.12.0.1/24",
  "storage-driver": "overlay2"
}

8. 添加 Kubernetes 仓库并安装 kubeadm、kubelet 和 kubectl

javascript 复制代码
cat << EOF > /etc/yum.repos.d/kubernetes.repo 
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF

9. 安装kubeadm、kubelet、kubectl

javascript 复制代码
yum install -y --nogpgcheck kubelet-1.23.12 kubeadm-1.23.12 kubectl-1.23.12

10.设置开机启动

javascript 复制代码
systemctl daemon-reload
systemctl restart docker.service  --now
systemctl restart kubelet.service  --now

3.在 Master 节点 (172.16.103.206) 上进行以下步骤

1. 初始化 Kubernetes 集群

javascript 复制代码
kubeadm config images pull --kubernetes-version=1.23.12  --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers

kubeadm init --pod-network-cidr=10.244.0.0/16 --kubernetes-version=1.23.12 --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers

成功初始化后,输出会显示一个 kubeadm join 命令,这个命令稍后会用来将 Worker 节点加入集群。

2. 配置 kubectl

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

3. 安装网络插件

javascript 复制代码
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

4. 生成kubeadm join

javascript 复制代码
[root@master ~]# kubeadm token create --print-join-command
kubeadm join 172.16.103.206:6443 --token cufhmh.sc1l5q2va9ry4zx2 --discovery-token-ca-cert-hash sha256:e1d8b794e5a1ab7b9425211d405698916e3196477cb0163c4977a4bd667d625e 

4.在 Node 节点 (172.16.103.196 和 172.16.103.197) 上进行以下步骤

1. 使用 kubeadm join 命令加入集群

使用在 Master 节点初始化集群后显示的 kubeadm join 命令将Node 节点加入集群。例如:

javascript 复制代码
kubeadm join 172.16.103.206:6443 --token cufhmh.sc1l5q2va9ry4zx2 --discovery-token-ca-cert-hash sha256:e1d8b794e5a1ab7b9425211d405698916e3196477cb0163c4977a4bd667d625e
kubectl get nodes

5.验证集群状态

在 Master 节点上,运行以下命令验证所有节点是否已成功加入集群并处于就绪状态:

javascript 复制代码
[root@master ~]# kubectl get nodes
NAME     STATUS   ROLES                  AGE   VERSION
master   Ready    control-plane,master   43m   v1.23.12
node1    Ready    <none>                 40m   v1.23.12
node2    Ready    <none>                 40m   v1.23.12

如果所有节点状态为 Ready,说明集群配置成功。

6.部署应用

现在,你可以开始在 Kubernetes 集群中部署应用。例如,创建一个简单的 Nginx 部署:

javascript 复制代码
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort

7.检查服务和 Pod 的状态:

javascript 复制代码
[root@master ~]# kubectl get pods
NAME                     READY   STATUS              RESTARTS   AGE
nginx-85b98978db-ntg72   0/1     ContainerCreating   0          25s
[root@master ~]# kubectl get svc
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
kubernetes   ClusterIP   10.96.0.1       <none>        443/TCP        44m
nginx        NodePort    10.100.52.141   <none>        80:32516/TCP   12s

8.访问nginx

javascript 复制代码
http://172.16.103.206:32516/
相关推荐
m0_6090004237 分钟前
向日葵好用吗?4款稳定的远程控制软件推荐。
运维·服务器·网络·人工智能·远程工作
小安运维日记1 小时前
Linux云计算 |【第四阶段】NOSQL-DAY1
linux·运维·redis·sql·云计算·nosql
CoolTiger、5 小时前
【Vmware16安装教程】
linux·虚拟机·vmware16
m0_741768855 小时前
使用docker的小例子
运维·docker·容器
学习3人组5 小时前
CentOS 中配置 OpenJDK以及多版本管理
linux·运维·centos
厨 神6 小时前
vmware中的ubuntu系统扩容分区
linux·运维·ubuntu
Karoku0666 小时前
【网站架构部署与优化】web服务与http协议
linux·运维·服务器·数据库·http·架构
geek_Chen016 小时前
虚拟机共享文件夹开启后mnt/hgfs/下无sharefiles? --已解决
linux·运维·服务器
(⊙o⊙)~哦7 小时前
linux 解压缩
linux·运维·服务器
牧小七8 小时前
Linux命令---查看端口是否被占用
linux