在CentOS上部署Kubernetes(k8s)并与其他服务集成的过程涉及多个步骤。以下是一个详细的指南,帮助你实现这一目标:
首先,在所有节点上安装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
cat > /etc/docker/daemon.json << eof
{
"registry-mirrors": ["https://mirrors.aliyun.com"]
}
eof
systemctl restart docker
docker info
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
# 下载离线安装包
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
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
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
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
kubectl create deployment redis --image=redis:6 --port=6379
kubectl expose deployment redis --type=LoadBalancer --port=6379
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
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 build -t your-app:latest .
docker tag your-app:latest harbor.your-harbor-url/your-app:latest
docker push harbor.your-harbor-url/your-app:latest
kubectl create deployment your-app --image=harbor.your-harbor-url/your-app:latest --port=8080
kubectl expose deployment your-app --type=LoadBalancer --port=8080
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是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怎么更改远程端口