实战演练:玩转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
相关推荐
AOwhisky23 分钟前
Python 学习笔记(第十四期)——运维自动化(下·中篇):远程文件传输——paramiko进阶篇
运维·python·学习·云原生·自动化·文件传输·paramiko
做个文艺程序员26 分钟前
Linux第22篇:用Docker容器化你的Java SaaS应用:一次构建,随处运行
java·docker·容器
小的博客3 小时前
windows下安装Docker Desptop
运维·docker·容器
Zhu7583 小时前
在k8s环境部署Apache zookeeper3.9.5,高可用,多pod
容器·kubernetes·apache
雨声不在4 小时前
macos 12使用docker
macos·docker·容器
云烟成雨TD4 小时前
Micrometer 系列【2】可观测性:指标(Metrics)
java·云原生·micrometer
运维老郭5 小时前
Ubuntu下编译安装Redis:从0到1可用的完整指南
运维·云原生
运维大师5 小时前
【K8S 运维实战】07-Pod生命周期与故障排查
运维·容器·kubernetes
Linux-187416 小时前
分布式链路追踪系统之二进制安装skywalking
elasticsearch·云原生·skywalking·分布式链路追踪系统·应用程序性能监控
BullSmall20 小时前
Anolis OS 8.10 完整安装 Docker CE(生产可用,解决 podman 冲突)
docker·容器·podman