kubernets集群

Kubernetes 是一个开源的容器编排系统,可以帮助用户自动管理多个容器化应用程序。本文将介绍如何在 CentOS 服务器上部署 Kubernetes 集群。

环境准备

1. 安装 Docker

在所有的节点上安装 Docker。

sudo yum install -y docker

sudo systemctl start docker

sudo systemctl enable docker

2. 安装 kubeadm

在所有的节点上安装 kubeadm、kubelet 和 kubectl。

sudo tee /etc/yum.repos.d/kubernetes.repo <<EOF
[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

sudo yum install -y kubelet kubeadm kubectl

sudo systemctl start kubelet

sudo systemctl enable kubelet

3. 关闭 swap 分区

Kubernetes 不支持使用 swap 分区,因此需要关闭 swap。

sudo swapoff -a

sudo sed -i '/swap/d' /etc/fstab

初始化 Kubernetes 主节点

在主节点上初始化 Kubernetes 集群。

sudo kubeadm init --pod-network-cidr=10.244.0.0/16

命令执行后会输出类似下面的信息:

Your Kubernetes control-plane has initialized successfully!

To start using your cluster, you need to run the following as a regular user:

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

You should now deploy a pod network to the cluster.
Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:
https://kubernetes.io/docs/concepts/cluster-administration/addons/

Then you can join any number of worker nodes by running the following on each as root:

kubeadm join 192.168.0.10:6443 --token abcdef.1234567890abcdef \
    --discovery-token-ca-cert-hash sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 命令的输出复制下来,然后在本地机器上执行。

ssh user@master_ip sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

 然后在本地机器上安装 Pod 网络插件。

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

 主节点初始化完成后,可以使用以下命令查看状态:

kubectl get nodes

加入 Kubernetes 工作节点

在需要添加为工作节点的服务器上执行以下命令:

sudo kubeadm join 192.168.0.10:6443 --token abcdef.1234567890abcdef \
    --discovery-token-ca-cert-hash sha256:0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef
 

其中 192.168.0.10 是主节点的 IP 地址,在主节点初始化时已经输出了加入命令的详细信息。

工作节点加入后,可以使用以下命令查看状态:

kubectl get nodes

部署应用程序

现在 Kubernetes 集群已经准备好了,可以开始部署应用程序。下面是一个简单的 Nginx 示例:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-deployment
  labels:
    app: nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort

猜你喜欢

转载自blog.csdn.net/qq_52497256/article/details/130317742