K8S简单部署案例

Posted 会飞的鹅

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了K8S简单部署案例相关的知识,希望对你有一定的参考价值。

部署mysql

准备yaml文件

位置:/etc/kubernetes/manifests

mysql-rc.yaml

apiVersion: v1
kind: ReplicationController
metadata:
  name: mysql
spec:
  replicas: 1
  selector:
    app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
      - name: mysql
        image: mysql:5.7.29
        ports:
        - containerPort: 3306
        env:
        - name: MYSQL_ROOT_PASSWORD
          value: "123456"

mysql-svc.yaml

apiVersion: v1
kind: Service
metadata:
  name: mysql
spec:
  type: NodePort
  ports:
    - port: 3307
      nodePort: 32307
      targetPort: 3306
  selector:
    app: mysql

在master上执行

kubectl create -f mysql-rc.yaml

kubectl create -f mysql-svc.yaml

进入到容器中

  • 方式一:使用docker命令:

查看pod运行在哪台节点

kubecte get pods -o wide

image.png

查看mysql的镜像名

docker ps -a

image.png

docker命令进入

docker exec -it a5d12fedbc19 /bin/bash

  • 方式二:使用kubectl进入

进入master节点

kubectl run -it --rm --image=mysql:5.7 --restart=Never  -- mysql -p123456

 

部署nginx

无状态部署

  • 生成yaml配置文件

kubectl create deployment web --image=nginx -o yaml --dry-run >> nginx.yaml

  • 使用yaml文件进行部署

kubectl apply -f nginx.yaml

  • 查看创建的pod

kubectl get pods

image.png

  • 对外暴露访问端口
    • 生成yaml配置文件

kubectl expose deployment web --port=80 --type=NodePort --target-port=80 --name=web1 -o yaml >> nginx-web1.yaml

image.png

    • 使用yaml文件进行部署

kubectl apply -f nginx-web1.yaml

访问任意一个node节点验证

http://192.168.119.12:31132/

使用StatefulSet部署有状态应用

  • 准备配置文件
apiVersion: v1
kind: Service
metadata:
  name: nginx
  labels:
    app: nginx
spec:
  ports:
  - port: 80
    name: web
  clusterIP: None
  selector:
    app: nginx

---

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: nginx-statefulset
  namespace: default
spec:
  serviceName: nginx
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80
  • 使用yaml文件进行部署

kubectl apply -f sts.yaml

  • 查看创建的pod

三个副本

image.png

进入其中一个容器查看默认生成的域名

image.png

 

以上是关于K8S简单部署案例的主要内容,如果未能解决你的问题,请参考以下文章

实践案例 | 用Kube-OVN实现跨K8s的统一网络平面部署TiDB

Kubernetes(K8S)应用案例

k8s官方案例练习-使用 Redis 部署 PHP 留言板应用程序

部署k8s集群+ceph存储出现依赖性缺失的故障案例(最小化系统arm架构)

k8s部署基础服务

如何在k8s上部署mongodb微服务