引言
Kubernetes(简称K8s)是一款开源的容器编排平台,用于自动化部署、扩展和管理容器化应用程序。Jenkins是一个开源的自动化服务器,广泛应用于持续集成和持续部署(CI/CD)流程。本文将介绍如何轻松掌握K8s集群,并使用Jenkins实现自动化运维。
K8s集群搭建
1. 环境准备
- 确保系统满足K8s的最低要求,如操作系统、内核版本等。
- 安装Docker,作为容器运行时环境。
2. 安装K8s
以下是在单节点上安装K8s的示例命令:
# 安装K8s相关组件
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl
sudo curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
cat <<EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
# 初始化K8s集群
sudo kubeadm init --pod-network-cidr=10.244.0.0/16
# 配置kubectl工具
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
3. 部署网络插件
选择一个网络插件(如Calico、Flannel等),以下使用Calico为例:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
安装Jenkins
1. 部署Jenkins镜像
kubectl apply -f - <<EOF
apiVersion: apps/v1
kind: Deployment
metadata:
name: jenkins
spec:
replicas: 1
selector:
matchLabels:
app: jenkins
template:
metadata:
labels:
app: jenkins
spec:
containers:
- name: jenkins
image: jenkins/jenkins:lts
ports:
- containerPort: 8080
EOF
2. 创建持久化存储
kubectl apply -f - <<EOF
apiVersion: v1
kind: PersistentVolume
metadata:
name: jenkins-pv
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Retain
storageClassName: "standard"
hostPath:
path: /var/lib/jenkins
EOF
kubectl apply -f - <<EOF
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: jenkins-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
storageClassName: "standard"
EOF
3. 配置Jenkins
- 在浏览器中访问Jenkins的默认端口(8080)。
- 首次访问时,按照向导完成Jenkins的初始配置。
- 根据实际需求配置Jenkins插件。
总结
通过以上步骤,您已经成功搭建了一个K8s集群,并部署了Jenkins,实现了自动化运维。接下来,您可以根据实际需求,配置Jenkins的CI/CD流程,实现自动化构建、测试和部署。