centos上k8s如何与其他服务集成

828
2025/4/15 0:32:29
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在CentOS上部署Kubernetes(k8s)并与其他服务集成的过程涉及多个步骤。以下是一个详细的指南,帮助你实现这一目标:

1. 环境准备

安装Docker

首先,在所有节点上安装Docker。

yum -y install wget
wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
yum -y install docker-ce
systemctl enable docker && systemctl start docker

配置Docker镜像加速

cat > /etc/docker/daemon.json << eof
{
  "registry-mirrors": ["https://mirrors.aliyun.com"]
}
eof
systemctl restart docker
docker info

安装Docker Compose

curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose"
chmod +x /usr/local/bin/docker-compose
docker-compose --version

安装Harbor镜像仓库

# 下载离线安装包
wget https://github.com/goharbor/harbor/releases/download/v2.3.3/harbor-offline-installer-v2.3.3.tgz
tar zxvf harbor-offline-installer-v2.3.3.tgz
cd harbor
./prepare
./install.sh

2. 安装Kubernetes

安装kubeadm、kubelet、kubectl

cat <<eof > /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
eof
yum install -y kubeadm kubelet kubectl
systemctl enable kubelet && systemctl start kubelet
kubectl get nodes

配置网络插件(如Flannel)

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

3. 部署依赖服务

MySQL

kubectl create deployment mysql --image=mysql:5.7 --port=3306 --env MYSQL_ROOT_PASSWORD=my-secret-pw
kubectl expose deployment mysql --type=LoadBalancer --port=3306

Redis

kubectl create deployment redis --image=redis:6 --port=6379
kubectl expose deployment redis --type=LoadBalancer --port=6379

RabbitMQ

kubectl create deployment rabbitmq --image=rabbitmq:3-management --port=5672 --env RABBITMQ_DEFAULT_USER=guest --env RABBITMQ_DEFAULT_PASS=guest
kubectl expose deployment rabbitmq --type=LoadBalancer --port=5672

4. 部署应用

拉取代码并编译

yum install -y java-1.8.0-openjdk maven git
git clone https://gitlab.com/your-repo/your-app.git
cd your-app
mvn clean package -Dmaven.test.skip=true

构建Docker镜像

docker build -t your-app:latest .

推送镜像到Harbor

docker tag your-app:latest harbor.your-harbor-url/your-app:latest
docker push harbor.your-harbor-url/your-app:latest

在Kubernetes中部署应用

kubectl create deployment your-app --image=harbor.your-harbor-url/your-app:latest --port=8080
kubectl expose deployment your-app --type=LoadBalancer --port=8080

5. 集成与自动化

使用ConfigMap和Secret管理配置和敏感信息

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
  APP_ENV: "production"
  APP_DEBUG: "false"
---
apiVersion: v1
kind: Secret
metadata:
  name: app-secret
type: Opaque
data:
  DB_PASSWORD: c2VjcmV0VmFsdWU=  # base64编码的密码

使用Helm进行包管理

Helm是Kubernetes的一个包管理工具,可以简化应用的部署和管理。

helm repo add my-charts https://my-charts.storage.googleapis.com
helm install my-app my-charts/my-app

通过以上步骤,你可以在CentOS上成功部署Kubernetes并与其他服务集成。根据具体需求,你还可以使用Cluster Autoscaler和Karpenter等工具实现节点的自动伸缩。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: centos怎么更改远程端口