K8S 使用deploy部署nginx


1. K8S 使用deployment 部署nginx服務

deploy文件如下:

[root@k8s-master ~]# cat deploy.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-nginx
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: ngx-service
  labels:
    app: nginx
spec:
  type: NodePort
  selector:
    app: nginx
  ports:
  - port: 80
    targetPort: 80
    nodePort: 32500

創建deploy

# kubectl apply -f deploy.yaml 
deployment.apps/nginx-deploy created
service/ngx-service created

查看pod及svc服務

# kubectl get pod,svc
NAME                               READY   STATUS    RESTARTS   AGE
pod/nginx-deploy-cc7df4f8f-5ntrk   1/1     Running   0          34s
pod/nginx-deploy-cc7df4f8f-q44p5   1/1     Running   0          34s
pod/nginx-deploy-cc7df4f8f-stgv6   1/1     Running   0          34s

NAME                  TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE
service/ngx-service   NodePort    10.1.171.28   <none>        80:32500/TCP   34s

瀏覽器訪問地址:ip:32500,正常即可.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-nginx
spec:
  selector:
    matchLabels:
      app: my-nginx
  template:
    metadata:
      labels:
        app: my-nginx
    spec:
      containers:
      - name: my-nginx
        image: nginx
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: ngx-service
  labels:
    app: my-nginx
spec:
  type: NodePort
  ports:
  - port: 80
    protocol: TCP
    name: http
  selector:
    app: my-nginx
隨機端口

2. 命令行方式創建nginx服務

1)、創建一個nginx的pod
現在我們在kubernetes集群中創建一個nginx的pod,驗證是否能正常運行。
在master節點執行一下步驟:

[root@k8s-master ~]# kubectl create deployment nginx --image=nginx
deployment.apps/nginx created
[root@k8s-master ~]# kubectl expose deployment nginx --port=80 --type=NodePort
service/nginx exposed
[root@k8s-master ~]# 

現在我們查看pod和service

[root@k8s-master ~]# kubectl get pod,svc -o wide
NAME                        READY   STATUS    RESTARTS   AGE     IP           NODE         NOMINATED NODE   READINESS GATES
pod/nginx-f89759699-rrg5g   1/1     Running   0          3m33s   10.244.2.5   k8s-node02   <none>           <none>

NAME                 TYPE        CLUSTER-IP    EXTERNAL-IP   PORT(S)        AGE     SELECTOR
service/kubernetes   ClusterIP   10.1.0.1      <none>        443/TCP        71m     <none>
service/nginx        NodePort    10.1.12.175   <none>        80:30990/TCP   3m22s   app=nginx
[root@k8s-master ~]# 

打印的結果中,前半部分是pod相關信息,后半部分是service相關信息。我們看service/nginx這一行可以看出service暴漏給集群的端口是30990。記住這個端口。

然后從pod的詳細信息可以看出此時pod在node2節點之上。node2節點的IP地址是192.168.10.402)、訪問nginx驗證集群
那現在我們訪問一下。打開瀏覽器(建議火狐瀏覽器),訪問地址就是:

http://192.168.10.40:30990

deploy部署tomcat腳本.

部署tomcat腳本:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: tomcat
  name: tomcat
spec:
  replicas: 3
  selector:
    matchLabels:
      app: tomcat
  template:
    metadata:
      labels:
        app: tomcat
    spec:
      containers:
      - image: tomcat:7.0
        imagePullPolicy: IfNotPresent
        name: tomcat8
        ports:
        - containerPort: 8080
---
apiVersion: v1
kind: Service
metadata:
  name: tomcat
spec:
   ports:
     - port: 8099
       targetPort: 8080
       nodePort: 30899  #瀏覽器訪問的端口
   selector:
     app: tomcat
   type: NodePort

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM