实战演练:玩转k8s

文章目录

实战1

1.kubernetes技术要点回顾

  • 控制面/数据面
  • yaml
  • Pod
  • Job/CronJob
  • ConfigMap/Secret

2.WordPress 网站基本架构

  • WordPress,MariaDB 这两个应用被封装成了 Pod

3.WordPress 网站搭建步骤

  • 搭建mariadb-pod

    • 创建maria-cm对象

      mariadb-cm.yml

      yaml 复制代码
      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: maria-cm
      
      data:
        DATABASE: 'db'
        USER: 'wp'
        PASSWORD: '123'
        ROOT_PASSWORD: '123'
    • 创建maria-pod对象

      mariadb-pod.yml

      yaml 复制代码
      apiVersion: v1
      kind: Pod
      metadata:
        name: maria-pod
        labels:
          app: wordpress
          role: database
      
      spec:
        containers:
        - image: mariadb:10
          name: maria
          imagePullPolicy: IfNotPresent
          ports:
          - containerPort: 3306
      
          envFrom:
          - prefix: 'MARIADB_'
            configMapRef:
              name: maria-cm
      shell 复制代码
      kubectl apply -f mariadb-pod.yml
      kubectl get pod -o wide
  • 搭建WordPress

    • 创建wordPress-cm对象

      wp-cm.yml

      yaml 复制代码
      apiVersion: v1
      kind: ConfigMap
      metadata:
        name: wp-cm
      
      data:
        HOST: '172.17.0.2'
        USER: 'wp'
        PASSWORD: '123'
        NAME: 'db'
    • 创建wordPress-pod对象

      wp-pod.yml

      yaml 复制代码
      apiVersion: v1
      kind: Pod
      metadata:
        name: wp-pod
        labels:
          app: wordpress
          role: website
      
      spec:
        containers:
        - image: wordpress:5
          name: wp-pod
          imagePullPolicy: IfNotPresent
          ports:
          - containerPort: 80
      
          envFrom:
          - prefix: 'WORDPRESS_DB_'
            configMapRef:
              name: wp-cm
      shell 复制代码
      kubectl apply -f wp-pod.yml
      kubectl get pod -o wide
  • WordPress Pod 映射端口

    shell 复制代码
    kubectl port-forward wp-pod 8080:80 &
  • 创建反向代理的Nginx

    nginx 复制代码
    server {
      listen 80;
      default_type text/html;
    
      location / {
          proxy_http_version 1.1;
          proxy_set_header Host $host;
          proxy_pass http://127.0.0.1:8080;
      }
    }
    shell 复制代码
    docker run -d --rm --net=host -v ./default.conf:/etc/nginx/conf.d/default.conf nginx:alpine
  • 查看日志

    复制代码
    kubectl logs pod 名称
  • 查看Dashboard

    复制代码
    minikube dashboard
  • 启动minikube

    shell 复制代码
    minikube start   --driver=docker --force --image-mirror-country='cn'  --image-repository='registry.cn-hangzhou.aliyuncs.com/google_containers'  --registry-mirror=https://docker.m.daocloud.io   --kubernetes-version=v1.23.3
相关推荐
掘根5 小时前
【微服务即时通讯】好友管理子服务2
微服务·云原生·架构
Exquisite.5 小时前
Docker容器技术
docker·容器·eureka
Sephiroth.Ma6 小时前
Mac 提示“Docker 已损坏,无法打开”?我这样排查后 10 分钟修好
macos·docker·容器
清水白石0087 小时前
Python 服务优雅停机实战:信号处理、资源收尾与 Kubernetes 滚动发布避坑指南
python·kubernetes·信号处理
是店小二呀7 小时前
Docker部署EasyNode+内网穿透:轻松实现服务器远程管理
服务器·docker·容器
一招定胜负7 小时前
在 Windows 11 家庭版安装 Docker Desktop解决虚拟化问题
运维·docker·容器
i建模8 小时前
Docker API 版本冲突问题
运维·docker·容器
小义_8 小时前
【RH134总结】 八
linux·运维·服务器·云原生·红帽
gordon~98 小时前
docker镜像安装
运维·docker·容器