手寫yaml文件創建k8s的deployment和service

編寫deployment和service的yaml文件,在kubernates集羣中添加服務。

前提:
1、docker鏡像已存在,名爲mydemoapp,tag爲0.0.1。如果不清楚如何製作自己的docker鏡像,可以參考《構建一個Java應用的Docker鏡像》
2、k8s集羣已搭建成功。
3、應用:端口爲999,有個可訪問的接口名稱爲hello

下面就可以開始手寫yaml文件 ,向k8s集羣中添加自己的服務了。

# mydemoapp-0.0.1.yaml

apiVersion: apps/v1
kind: Deployment
metadata:
  name: mydemoapp
  namespace: default
  labels:
    app: mydemoapp
spec:
  replicas: 2
  strategy:
    rollingUpdate:
      maxSurge: 1
      maxUnavailable: 1
  selector:
    matchLabels:
      app: mydemoapp
  template:
    metadata:
      labels:
        app: mydemoapp
    spec:
      containers:
      - name: mydemoapp
        image: mydemoapp:0.0.1
        ports:
        - containerPort: 999
          protocol: TCP
        imagePullPolicy: IfNotPresent
      hostAliases:
      - hostnames:
        - yourDns_mysql_hostName
        ip: 192.168.99.99
      restartPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
  name: mydemoapp
  namespace: default
  labels:
    app: mydemoapp
spec:
  ports:
  - port: 80
    targetPort: 999
    nodePort: 30001
    protocol: TCP
  selector:
    app: mydemoapp
  type: NodePort

創建k8s服務:

[root@dev ~]# kubectl create -f mydemoapp-0.0.1.yaml
deployment.apps/mydemoapp created
service/mydemoapp created

查看k8s狀態:

[root@dev ~]# kubectl get all
NAME                             READY   STATUS    RESTARTS   AGE
pod/mydemoapp-86c57db685-fpn4g   1/1     Running   0          43s

NAME                 TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
service/mydemoapp    NodePort    10.96.0.1      <none>        80:30001/TCP    43s

NAME                         READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/mydemoapp    1/1     1            1           43s

NAME                        DESIRED   CURRENT   READY   AGE
replicaset.apps/mydemoapp   1         1         1       43s

訪問應用:

curl http://<yourNodeIp>:30001/hello
發佈了6 篇原創文章 · 獲贊 5 · 訪問量 5059
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章