实战演练:玩转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
相关推荐
lichenyang4532 小时前
Docker 学习笔记(四):Dockerfile,把项目打成自己的镜像
docker·容器
lichenyang4532 小时前
Docker 学习笔记(三):Docker 网络、bridge、子网和容器互通
docker·容器
lichenyang4532 小时前
Docker 学习笔记(二):docker run 的参数到底在控制什么?
docker·容器
阿里云云原生18 小时前
香港站【企业 AI Agent 工程化实战专场】来啦,邀您7月9日见!
云原生·agent
阿里云云原生21 小时前
研发域与运维域的“数字握手”:通过 Agentic Skills 实现 DevOps 全链路自动化
云原生
运维开发故事3 天前
基于 Arthas 的多集群在线诊断系统设计与实现
kubernetes
Patrick_Wilson5 天前
从「改个端口」到 502:Next.js on k8s 的容器端口、Service 映射与 env 覆盖
docker·kubernetes·next.js
阿里云云原生5 天前
AI 开发新常态:当 Cursor、Claude、Codex 并行,如何统一管理散落的 Skill 资产?
云原生·ai编程
探索云原生5 天前
K8s 1.36 这个 GA 特性,把 initContainer 拉模型的 hack 干掉了
ai·云原生·kubernetes
云恒要逆袭5 天前
运行你的第一个Docker容器
后端·docker·容器