Kubernetes

K8S简单部署案例

本文主要是介绍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简单部署案例的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!