centos

centos k8s应用部署流程

小樊
38
2025-05-23 08:19:06
栏目: 智能运维

在CentOS上部署Kubernetes(k8s)应用的流程大致如下:

环境准备

  1. 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
  1. 关闭SELinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
  1. 禁用交换分区
swapoff -a
sed -i '/swap/s/1/g' /etc/fstab
  1. 设置主机名和hosts文件
hostnamectl set-hostname k8s-master
cat >> /etc/hosts << EOF
10.10.10.11 k8s-master
10.10.10.12 k8s-node1
10.10.10.13 k8s-node2
EOF
  1. 配置网络

编辑 /etc/sysctl.d/k8s.conf 文件,添加以下内容:

net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1

然后应用配置:

sysctl --system
  1. 时间同步
yum install ntpdate -y
ntpdate time.windows.com

安装Docker

  1. 添加Docker的YUM源
curl https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
  1. 安装Docker
yum install -y docker-ce docker-ce-cli containerd.io
systemctl start docker
systemctl enable docker
  1. 修改Docker配置

对Docker的配置做一点修改,在 /etc/docker/daemon.json 里把cgroup的驱动程序改成systemd,然后重启Docker的守护进程:

sudo tee /etc/docker/daemon.json << EOF
{
    "exec-opts": ["native.cgroupdriver=systemd"],
    "log-driver": "json-file",
    "log-opts": {
        "max-size": "100m"
    },
    "storage-driver": "overlay2"
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

安装Kubernetes组件

  1. 添加Kubernetes的YUM源
cat << EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg
EOF
  1. 安装kubelet、kubeadm和kubectl
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet
systemctl start kubelet

初始化Master节点

在Master节点上执行以下命令,初始化Kubernetes集群:

kubeadm init --pod-network-cidr 10.244.0.0/16 --apiserver-advertise-address Master_IP

其中 Master_IP 是Master节点的IP地址。

  1. 配置kubectl

将Master节点的配置文件复制到本地,并配置kubectl:

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

加入Worker节点

在Master节点生成的命令复制到每个Worker节点并执行。

部署网络插件(如Calico)

在Master节点上执行以下命令:

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

验证部署

  1. 在Master节点查询节点状态:
kubectl get nodes
  1. 查看所有Pods是否正常运行:
kubectl get pods --all-namespaces

部署应用

假设你要部署一个简单的Nginx应用,可以按照以下步骤进行:

  1. 制作Docker镜像

创建一个 Dockerfile

FROM nginx:latest
COPY nginx.conf /etc/nginx/nginx.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]

构建镜像:

docker build -t nginx .

推送镜像到Harbor或其他仓库:

docker tag nginx:latest your-registry/nginx:latest
docker push your-registry/nginx:latest
  1. 在Kubernetes集群中部署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: your-registry/nginx:latest
        ports:
        - containerPort: 80

应用配置:

kubectl apply -f deployment.yaml
  1. 验证部署
kubectl get pods

以上步骤展示了如何在CentOS上部署Kubernetes集群并部署一个简单的Nginx应用。请根据实际需求调整配置和镜像。

0
看了该问题的人还看了