Skip to content

sealos私有化部署Kubernetes

以debian为例

首先修改虚拟主机IP获取方式为静态IP地址:

示例:修改 vim /etc/network/interfaces为以下内容(所有节点都需修改):

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto ens33
iface ens33 inet static
    address 192.168.62.131 #当前主机IP地址
    netmask 255.255.255.0 #当前子网掩码
    gateway 192.168.62.2 #当前网关IP地址
    dns-nameservers 192.168.62.2 当前DNS服务器IP地址

修改各个主机名:

查看主机名 hostname,修改主机名文件 vim /etc/hostname如:k8s-master(所有节点都需修改)

修改各个主机host映射

示例:修改 vim /etc/hosts

192.168.62.131    k8s-master
192.168.62.132    k8s-worker1
192.168.62.133    k8s-worker2

使用sealos一键安装k8s集群

  1. 安装依赖:sudo apt install -y iptables ebtables socat
  2. 下载对应系统sealos包,debian是以deb结尾的:
wget https://github.com/labring/sealos/releases/download/v5.0.1/sealos_5.0.1_linux_amd64.deb
  1. 下载后使用:apt install ./sealos_5.0.1_linux_amd64.deb 安装
  2. 一键安装如下命令:主节点为 192.168.62.131,从节点为 192.168.62.132 192.168.62.133,从节点ssh密码为 password-root
sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.29.9 registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4 registry.cn-shanghai.aliyuncs.com/labring/cilium:v1.13.4 \
     --masters 192.168.62.131\
     --nodes 192.168.62.132,192.168.62.133 -p password-root

安装成功如图所示:

其他命令

增加节点

  1. 增加node节点 192.168.64.21与192.168.64.19sealos add --nodes 192.168.64.21,192.168.64.19
  2. 增加master节点 192.168.64.21与192.168.64.19sealos add --masters 192.168.64.21,192.168.64.19

删除节点

  1. 删除node节点 192.168.64.21与192.168.64.19sealos delete --nodes 192.168.64.21,192.168.64.19
  2. 删除master节点 192.168.64.21与192.168.64.19sealos delete --masters 192.168.64.21,192.168.64.19

清理k8s集群

sealos reset

离线安装k8s

离线环境只需要提前导入镜像,其它步骤与在线安装一致。

首先在有网络的环境中导出集群镜像:

  1. 拉取镜像:
sealos pull registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.29.9
  1. 保存镜像为压缩包 kubernetes.tar
sealos save -o kubernetes.tar registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.29.9
  1. 方式1:将kubernetes.tar 拷贝到其他离线环境,使用 load导入集群镜像
sealos load -i kubernetes.tar
  1. 查看现有镜像 sealos images
  2. 离线安装:
    1. 单机部署方式 sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.29.9
    2. 集群部署方式
sealos run registry.cn-shanghai.aliyuncs.com/labring/kubernetes:v1.29.9 registry.cn-shanghai.aliyuncs.com/labring/helm:v3.9.4 registry.cn-shanghai.aliyuncs.com/labring/cilium:v1.13.4 \
     --masters 192.168.64.2,192.168.64.22,192.168.64.20 \
     --nodes 192.168.64.21,192.168.64.19 -p [your-ssh-passwd]
  1. 方式2:
  2. 快速启动 K8s 单节点:sealos run kubernetes.tar 集群同理

使用kubectl管理k8s集群

类别命令功能描述示例
基本命令
create创建资源根据文件、目录或URL创建资源,支持单个或多个文件。kubectl create -f ./nginx.yaml kubectl create -f ./dir kubectl create -f xxx.git.io/vxxzso.yaml
run运行镜像在集群中运行指定镜像,支持终端交互、多个副本等。kubectl run -i --tty busybox --image=busybox kubectl run nginx --image=nginx kubectl run mybusybox --image=busybox --replicas=5
explain获取资源文档查看指定资源的文档说明,如pod、service等。kubectl explain pods,svc
get查询资源获取资源信息(如node、pod、service等),支持多种格式和过滤。kubectl get nodes kubectl get pods -o wide --all-namespaces kubectl get namespaces kube-system -o yaml
edit编辑资源在服务端直接编辑资源配置。kubectl edit svc/docker-registry
delete删除资源根据文件、名称或标签删除资源,支持强制删除和包含未初始化资源。kubectl delete -f ./pod.json kubectl delete pod,service baz foo kubectl delete pods prometheus-7fcfcb9f89-qkkf7 --grace-period=0 --force
cp文件拷贝在容器与宿主机之间拷贝文件或目录。kubectl cp default/venus-registry-web-8cd94fc99-fws4b:demo.txt demo.txt kubectl cp demo.txt default/venus-registry-web-8cd94fc99-fws4b:demo.txt
部署命令
rollout查看/回退修订版本查看部署的历史修订版本或回退到指定版本。kubectl rollout history deployment nginx-deployment kubectl rollout undo deployment nginx-deployment --to-revision=1
scale调整副本数手动扩展或缩减副本数量。kubectl scale rc rc-nginx-3 --replicas=4
autoscale自动调整副本数根据负载自动调整副本数,指定最小和最大范围。kubectl autoscale rc rc-nginx-3 --min=1 --max=4
集群管理命令
cluster-info查看集群信息显示集群的详细信息。kubectl cluster-info kubectl cluster-info dump
top查看资源使用情况显示节点或pod的CPU、内存等资源使用情况。kubectl top node k8s-node kubectl top pod -n logging
cordon标记节点不可调度将节点标记为不可调度状态。kubectl cordon k8s-node
uncordon标记节点可调度将节点标记为可调度状态。kubectl uncordon k8s-node
drain排除节点排除节点上的pod,准备维护。kubectl drain k8s-node
故障排查和诊断
describe显示资源详细信息查看资源(如pod、node)的详细状态和事件。kubectl describe pod xxx kubectl describe nodes
logs查看容器日志查看pod中容器的日志,支持指定容器、行数和实时输出。kubectl logs -f kube-dns-699984412-vz1q6 -n kube-system kubectl logs --tail=10 nginx
exec执行容器命令在容器中执行shell命令,支持交互模式和多容器指定。kubectl exec -it codeleak-github-cron-1567581840-zsqpc /bin/bash kubectl exec nginx-pod -c my-container -- ls /
高级命令
apply应用配置根据文件或标准输入更新资源配置。kubectl apply -f rc-nginx.yaml`cat pod.json
设置命令
label管理资源标签添加、修改或删除资源的标签,支持覆盖和批量操作。kubectl label nodes node01 disk=ssd kubectl label pods tomcat app=tomcat kubectl label pods tomcat app-
annotate管理Annotations更新资源的Annotations信息。kubectl annotate pods foo description='my frontend'
其他命令
version查看版本信息显示客户端和服务端的版本信息。kubectl version
api-versions查看API版本显示服务端支持的API版本。kubectl api-versions
api-resources查看资源类型显示服务端支持的资源类型。kubectl api-resources