sealos安装k8s-ubuntu22.04.04

~~前提:
1、master和node之间root SSH能登录。

2.时间要同步

第一步:在客户端产生密钥地
ssh-keygen -t ed25519
ssh-keygen -t rsa
第二步:将公钥部署到远程服务器 ssh-copy-id root@192.168.198.112
第三步:从普通用户复制到root目录下
root@clusterb-node1:~# cp /home/oracle/.ssh/authorized_keys /root/.ssh/authorized_keys
第四步:在远程服务器(服务端)确认SSH服务配置,确保文件中包含 PubkeyAuthentication yes 和 AuthorizedKeysFile .ssh/authorized_keys 这两行(行首没有#注释)
sudo sed -i 's/^#PubkeyAuthentication yes/PubkeyAuthentication yes/' /etc/ssh/sshd_config
sudo sed -i 's/^#AuthorizedKeysFile/AuthorizedKeysFile/' /etc/ssh/sshd_config

1.1环境配置:

1. 虚拟机集群搭建
设置主机名
[root@localhost ~]# hostnamectl set-hostname master
[root@localhost ~]# hostnamectl set-hostname node1
[root@localhost ~]# hostnamectl set-hostname node2

域名写入host文件
cat >> /etc/hosts << EOF
192.168.198.111 cluster-master1
192.168.198.112 cluster-node1
192.168.198.113 cluster-node2
EOF

关闭swapoff
[root@master ~]# swapoff -a
[root@master ~]# sudo sed -ri 's/.*swap.*/#&/' /etc/fstab


修改内核参数
1、载入如下内核模块
sudo tee /etc/modules-load.d/containerd.conf <<EOF
overlay
br_netfilter
EOF

sudo modprobe overlay
sudo modprobe br_netfilter
验证是否加载成功:
lsmod | grep -E "overlay|br_netfilter"

2、配置内核网络参数
cat <<EOF | sudo 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

sudo sysctl --system

3、安装IPVS
root@clusterb-node1:/var/log# apt install ipvsadm

2、# 指定k8s部署目录位置

K8S_DIR="/app"
# k8s服务相关目录
mkdir -p $K8S_DIR/k8s/{sealos,kubelet,containerd,containers,calico,etcd}
ln -sf $K8S_DIR/k8s/sealos /var/lib/sealos
ln -sf $K8S_DIR/k8s/kubelet /var/lib/kubelet
ln -sf $K8S_DIR/k8s/containerd /var/lib/containerd
ln -sf $K8S_DIR/k8s/containers /var/lib/containers
ln -sf $K8S_DIR/k8s/calico /var/lib/calico
ln -sf $K8S_DIR/k8s/etcd /var/lib/etcd
# k8s日志相关目录
mkdir -p $K8S_DIR/k8s/logs/{pods,containers,kubernetes,calico}
ln -sf $K8S_DIR/k8s/logs/pods /var/log/pods
ln -sf $K8S_DIR/k8s/logs/containers /var/log/containers
ln -sf $K8S_DIR/k8s/logs/kubernetes /var/log/kubernetes
ln -sf $K8S_DIR/k8s/logs/calico /var/log/calico

~~sealos安装K8s

1、下载sealos

wget https://ghfast.top/https://github.com/labring/sealos/releases/download/v4.3.0/sealos_4.3.0_linux_amd64.tar.gz \
&& tar zxvf sealos_4.3.0_linux_amd64.tar.gz && cp sealos /usr/bin/

2、下载k8s,calico镜像
# 下载k8s、calico、helm

sealos pull registry.cn-shanghai.aliyuncs.com/labring/helm:v3.8.2
sealos pull registry.cn-shanghai.aliyuncs.com/labring/calico:v3.22.1
sealos pull registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.21.0

3、部署k8s集群
方式1:
(1) 生成集群部署文件

sealos gen registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.21.0 \
registry.cn-shanghai.aliyuncs.com/labring/calico:v3.22.1 \
--masters x.x.x.x,x.x.x.x \
--nodes x.x.x.x,x.x.x.x \
--passwd 'password' 
--vip 1XX.XX.XX.XX
> Clusterfile (2) 修改Clusterfile文件,在status: {}行下面插入以下内容,完整内容如下:
root@master:/# more Clusterfile 
apiVersion: apps.sealos.io/v1beta1
kind: Cluster
metadata:
  creationTimestamp: null
  name: default
spec:
  hosts:
  - ips:
    - 192.168.198.131:22
    roles:
    - master
    - amd64
  image:
  - labring/kubernetes:v1.21.0
  - labring/calico:v3.22.1
  ssh:
    passwd: oracle
    pk: /root/.ssh/id_rsa
    port: 22
status: {}
---
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
networking:
  podSubnet: 172.16.0.0/16
---
apiVersion: apps.sealos.io/v1beta1
kind: Config
metadata:
  name: calico
spec:
  path: manifests/calico.yaml
  data: |
    apiVersion: operator.tigera.io/v1
    kind: Installation
    metadata:
      name: default
    spec:
      # Configures Calico networking.
      calicoNetwork:
        # Note: The ipPools section cannot be modified post-install.
        ipPools:
        - blockSize: 26
          # Note: Must be the same as podCIDR
          cidr: 172.16.0.0/16
          encapsulation: IPIP
          natOutgoing: Enabled
          nodeSelector: all()
        nodeAddressAutodetectionV4:
          interface: "ens32"
(3) sealos apply -f /Clusterfile 

方式2:

sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.21.0 \
registry.cn-shanghai.aliyuncs.com/labring/calico:v3.22.1 \
--masters 192.168.198.131 \
--nodes 192.168.198.133,192.168.198.134 \
-p 'oracle'

4、安装失败-恢复环境

sealos reset

5、sealos常用命令

# 添加节点
sealos add --nodes 192.168.198.133,192.168.198.134
# 添加master和节点
sealos add --masters 192.168.198.131  --nodes 192.168.198.133 
sealos add --masters x.x.x.x-x.x.x.x --nodes x.x.x.x-x.x.x.x
# 删除节点
sealos delete --nodes x.x.x.x
sealos delete --masters x.x.x.x --nodes x.x.x.x
# 清理集群
sealos reset --help
sealos reset
sealos reset --masters x.x.x.x,x.x.x.x,x.x.x.x
# 登陆到sealos镜像仓库
sealos login sealos.hub:5000 -u admin -p passw0rd
# 导入镜像到本地
sealos load -i nginx_latest-1.28.0.tar
# 镜像打tag
sealos tag registry.images.net/nginx:1.28.0 sealos.hub:5000/nginx:1.28.0
# 镜像push到sealos仓库
sealos push sealos.hub:5000/nginx:1.28.0
# 查看镜像
sealos images
# 导出镜像到本地
sealos save -o nginx:1.28.0.tar sealos.hub:5000/nginx:1.28.0
# 导出多个镜像到一个tar归档文件
sealos save -o images.tar --images="nginx:latest,redis:alpine"

6、kubectl常用命令

# 1. 查看所有节点的状态、角色、版本及内部 IP
kubectl get nodes -o wide

# 2. 查看所有命名空间下的 Pod,并显示所在的节点(便于排查 Pod 分布)
kubectl get pods -A -o wide

# 3. 查看集群核心组件(scheduler, controller-manager, etcd)的健康状态
kubectl get cs
#验证组件是否正常
kubectl get pods -n kube-system | grep -E 'scheduler|controller-manager'

# 4. 查看 kube-system 命名空间下关键 Pod 的详细状态(CoreDNS, kube-proxy 等)
kubectl get pods -n kube-system

# 5. 查看网络插件(calico-system 或其他)的 Pod 状态
kubectl get pods -n calico-system 2>/dev/null || kubectl get pods -n kube-flannel 2>/dev/null

kubectl get pods -A -o wide

# 6. 【可选】实时监视 Pod 状态变化(按 Ctrl+C 退出)
kubectl get pods -A -w

# 7 。验证组件是否正常
kubectl get pods -n kube-system | grep -E 'scheduler|controller-manager'

# 8. kubectl label node 命令添加标签
kubectl label node node1 node-role.kubernetes.io/worker=
kubectl label node node2 node-role.kubernetes.io/worker=

kubectl logs -n calico-system calico-node-cx2fg --previous
kubectl logs -n calico-system calico-node-cx2fg
kukubectl delete pod POD_NAME --force --grace-period=0
kubectl describe pod -n calico-system calico-node-cx2fg

 

参考链接:

https://www.cnblogs.com/xwupiaomiao/p/17646237.html
https://sealos.run/docs/k8s/quick-start/deploy-kubernetes

 

posted @ 2026-04-30 13:46  hopeccie  阅读(48)  评论(0)    收藏  举报