首页主机资讯k8s在centos上的容器化应用如何部署

k8s在centos上的容器化应用如何部署

时间2025-10-20 13:31:05发布访客分类主机资讯浏览1373
导读:在CentOS上部署Kubernetes(k8s)容器化应用的完整流程 1. 环境准备 操作系统:确保使用CentOS 7.9及以上版本(推荐CentOS Stream 8/9)。 硬件要求:每台节点(Master/Worker)至少4G...

在CentOS上部署Kubernetes(k8s)容器化应用的完整流程

1. 环境准备

  • 操作系统:确保使用CentOS 7.9及以上版本(推荐CentOS Stream 8/9)。
  • 硬件要求:每台节点(Master/Worker)至少4GB内存20GB可用存储,且CPU支持虚拟化。
  • 网络要求:所有节点之间网络互通(无防火墙阻隔),且具备外网访问权限(用于拉取镜像)。
  • 基础配置
    • 关闭防火墙:sudo systemctl stop firewalld & & sudo systemctl disable firewalld
    • 关闭SELinux:sudo setenforce 0,并修改配置文件/etc/selinux/config中的SELINUX=disabled
    • 禁用交换分区:sudo swapoff -a,并注释/etc/fstab中的swap行;
    • 设置主机名(如k8s-masterk8s-worker1)并通过/etc/hosts文件配置节点间域名解析。

2. 安装Docker(容器运行时)

Kubernetes依赖Docker作为容器运行时(也可选择containerd,但Docker更常用)。

  • 安装必要工具:sudo yum install -y yum-utils device-mapper-persistent-data lvm2 net-tools
  • 添加Docker软件源:sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  • 安装Docker CE:sudo yum install -y docker-ce docker-ce-cli containerd.io
  • 启动Docker并设置开机自启:sudo systemctl start docker & & sudo systemctl enable docker
  • 验证安装:docker --version(应输出Docker版本信息)。

3. 安装Kubernetes组件(kubelet、kubeadm、kubectl)

  • 配置Kubernetes软件源:创建/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
    
  • 安装组件:sudo yum install -y kubelet kubeadm kubectl
  • 启动kubelet并设置开机自启:sudo systemctl enable kubelet & & sudo systemctl start kubelet

4. 初始化Master节点

  • 在Master节点上执行初始化命令(以CentOS 7为例,需指定镜像仓库和Pod网络CIDR):
    sudo kubeadm init --apiserver-advertise-address=<
        Master-IP>
         \
      --image-repository registry.aliyuncs.com/google_containers \
      --kubernetes-version v1.22.15 \
      --service-cidr 10.96.0.0/12 \
      --pod-network-cidr 10.244.0.0/16 \
      --ignore-preflight-errors=all
    
    (注:< Master-IP> 替换为Master节点的实际IP;--ignore-preflight-errors=all用于忽略部分兼容性问题,生产环境需谨慎使用。)
  • 初始化完成后,Master节点会输出加入Worker节点的命令(如kubeadm join ...),需妥善保存。

5. 配置kubectl(Master节点)

  • 创建.kube目录:mkdir -p $HOME/.kube
  • 复制Admin配置文件:sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
  • 修改配置文件权限:sudo chown $(id -u):$(id -g) $HOME/.kube/config
  • 验证配置:kubectl version --client(应显示客户端版本,且无报错)。

6. 安装网络插件(Master节点)

Kubernetes需要网络插件实现Pod间通信,常用Flannel(轻量级)或Calico(功能丰富)。

  • 以Flannel为例,执行以下命令:
    kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
    
  • 验证网络插件状态:kubectl get pods -n kube-system(所有Pod应处于Running状态)。

7. 加入Worker节点

  • 在Worker节点上执行Master节点初始化时输出的加入命令(如):
    sudo kubeadm join 192.168.1.100:6443 \
      --token abcdef.0123456789abcdef \
      --discovery-token-ca-cert-hash sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
    
  • 加入完成后,Worker节点会自动连接到Master节点。

8. 验证集群状态(Master节点)

  • 查看节点状态:kubectl get nodes(所有节点应显示为Ready);
  • 查看Pod状态:kubectl get pods --all-namespaces(所有Pod应处于Running状态)。

9. 部署容器化应用(以Nginx为例)

  • 方式1:使用YAML文件部署(推荐)

    • 创建Deployment配置文件nginx-deployment.yaml
      apiVersion: apps/v1
      kind: Deployment
      metadata:
        name: nginx-deployment
      spec:
        replicas: 3  # 副本数
        selector:
          matchLabels:
            app: nginx
        template:
          metadata:
            labels:
              app: nginx
          spec:
            containers:
            - name: nginx
              image: nginx:latest  # 镜像
              ports:
              - containerPort: 80  # 容器端口
      
    • 创建Service配置文件nginx-service.yaml(暴露服务):
      apiVersion: v1
      kind: Service
      metadata:
        name: nginx-service
      spec:
        selector:
          app: nginx
        ports:
        - protocol: TCP
          port: 80  # Service端口
          targetPort: 80  # Pod端口
        type: NodePort  # 类型(NodePort允许外部访问)
      
    • 部署应用:
      kubectl apply -f nginx-deployment.yaml
      kubectl apply -f nginx-service.yaml
      
  • 方式2:使用kubectl命令快速部署(测试用)

    kubectl create deployment nginx --image=nginx --replicas=3
    kubectl expose deployment nginx --port=80 --type=NodePort
    
  • 验证部署

    • 查看Pod状态:kubectl get pods(应显示3个Running的Nginx Pod);
    • 查看Service状态:kubectl get svc(记录nginx-serviceNodePort,如30080);
    • 访问应用:在浏览器或终端中输入http://< Master-IP> :30080(应显示Nginx欢迎页面)。

通过以上步骤,即可在CentOS上完成Kubernetes集群的部署,并运行容器化应用。生产环境中还需配置持久化存储(如PV/PVC)、监控(如Prometheus)、日志(如ELK)等功能,以提升集群的可靠性和可维护性。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: k8s在centos上的容器化应用如何部署
本文地址: https://pptw.com/jishu/730016.html
jmeter在centos上的安装步骤 k8s在centos上的自动化运维工具有哪些

游客 回复需填写必要信息