k8s 平台部署java网站项目

1. 使用控制器部署镜像

image

2. 案例

2.1 将镜像仓库认证凭据保存在k8s secret 中

[root@k8s-master ~]# kubectl create secret docker-registry harbor-auth --docker-username=admin --docker-password=12345678 --docker-server=harbor.scajy.org
secret/harbor-auth created

2.2 在yaml中使用这个认证凭据

imagePullSecrets:
- name: harbor-auth

2.3 创java-demo目录

[root@k8s-master ~]# cd yaml/
[root@k8s-master yaml]# ll
总用量 0
drwxr-xr-x. 2 root root 76 12月  8 15:31 ingress
[root@k8s-master yaml]# mkdir -p java-demo
[root@k8s-master yaml]# cd java-demo/

2.4 编写k8s 发布的yaml配置文件

[root@k8s-master java-demo]# vim java_demo.yaml 
[root@k8s-master java-demo]# cat java_demo.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: java-demo
  namespace: default
  labels:
    app: java-demo
  annotations:       # 记录回滚参数
    kubernetes.io/change-cause: "java-demo:v1"   #记录到revision中的内容,记录版本号
spec:
  replicas: 3 # Pod副本预期数量
  revisionHistoryLimit: 10 # RS历史版本保存数量
  selector:
    matchLabels:
      app: java-demo
  strategy:
    rollingUpdate:
      maxSurge: 25%             # 滚动更新过程最大pod副本数
      maxUnavailable: 25%       # 滚动更新过程中最大不可用pod副本数,
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: java-demo # Pod副本的标签
    spec:
      imagePullSecrets:
      - name: harbor-auth
      containers:
      - name: java-demo
        image: harbor.scajy.org/scajy/java:v1         # 获取容器
        ports:
        - containerPort: 8080
        resources:
          requests:              # 启动容器最小资源
            memory: "256Mi"
            cpu: "500m"
          limits:                 # 容器的最大资源限制
            memory: "512Mi"       # 容器的最大资源内存限制128M
            cpu: "1000m"           # 容器的最大资源cpu的核数限制,500m=0.5核数
        readinessProbe:          # 存活检查,如果失败,将杀死容器,来重启
          httpGet:
            port: 8080
            path: /
          initialDelaySeconds: 20 #启动容器后多少秒健康检查
          periodSeconds: 20 #以后间隔多少秒检查一次
        livenessProbe:   # 就绪检查,失败就会剔除 service 
          httpGet:
            port: 8080
            path: /

2.5 启动服务

[root@k8s-master java-demo]# kubectl apply -f java_demo.yaml 
deployment.apps/java-demo created

2.6 检查服务是否启动

[root@k8s-master java-demo]# kubectl get pods
NAME                         READY   STATUS    RESTARTS   AGE
java-demo-67866dbff6-ckkhd   1/1     Running   0          28m
java-demo-67866dbff6-gvkt6   1/1     Running   0          28m
java-demo-67866dbff6-mgd8p   1/1     Running   0          28m
nginx-6799fc88d8-bvg8q       1/1     Running   0          39h
原文地址:https://www.cnblogs.com/scajy/p/15533419.html