美文网首页
istio 里部署我们自己的应用

istio 里部署我们自己的应用

作者: Yellowtail | 来源:发表于2019-03-25 19:09 被阅读0次

    前提

    kubernates 集群里已经安装好了 istio
    注意:命令都是在k8s 集群的master 机器上执行的哦

    1. 创建命名空间

    namespace 可以用来隔离容器和服务

    创建一个dev,并且打开自动注入

    kubectl create ns dev
    kubectl label namespace dev istio-injection=enabled
    kubectl get ns  -L istio-injection
    

    2. 创建secret

    因为我们的镜像是私有仓库,必须登陆才能pull
    所以在集群内创建secret,方便pull 镜像
    (敏感信息已脱敏)

    kubectl -n dev create secret docker-registry geek-secret \
    --docker-server=registry.cn-shenzhen.aliyuncs.com \
    --docker-username=xxxx\
    --docker-password=xxxxx \
    --docker-email=xxx@xxx.com
    

    其中,docker-registrysecret类型,不能修改
    geek-secret 是name,随意修改
    页面查看

    image.png

    语法点我

    检验

    [root@iZwz983wql3f1yerh738xeZ fanggeek]# kubectl get secrets -n dev
    NAME                  TYPE                                  DATA      AGE
    default-token-cg9tc   kubernetes.io/service-account-token   3         52m
    geek-secret           kubernetes.io/dockerconfigjson        1         1m
    istio.default         istio.io/key-and-cert                 3         52m
    my-secret             kubernetes.io/dockerconfigjson        1         14m
    

    3. 创建并部署

    kubectl -n dev create -f ./sms-dev.yaml
    

    输出

    [root@iZwz983wql3f1yerh738xeZ fanggeek]# kubectl -n dev create -f ./sms-dev-injected.yaml
    service "ms-sms" created
    deployment.extensions "ms-sms-v1" created
    
    

    解释
    -n dev 安装到dev这个namespace

    4. check

    检查、确认一下,执行两个命令,分别查看podservice

    [root@iZwz9d2n2uc00beimb4u5kZ fanggeek]# kubectl get pod -n prod
    NAME                        READY     STATUS    RESTARTS   AGE
    ms-sms-v1-768fd445b-2n94p   2/2       Running   0          3m
    ms-sms-v1-768fd445b-6bfxr   2/2       Running   0          3m
    

    注意:数量必须是2,才表明istioproxy注入进去了

    5. 卸载

    kubectl -n dev delete -f ./sms-dev.yaml
    
    [root@iZwz983wql3f1yerh738xeZ fanggeek]# kubectl -n dev delete -f ./sms-dev-injected.yaml
    service "ms-sms" deleted
    deployment.extensions "ms-sms-v1" deleted
    

    6. nothing

    在这里贴一下我用的 sms-dev.yaml

    
    ##################################################################################################
    # sms-dev service
    ##################################################################################################
    apiVersion: v1
    kind: Service   # 定义一个服务
    metadata:
      namespace: dev
      name: ms-sms
      labels:
        app: ms-sms   
    spec:
      ports:
      - port: 8080   # port是service对外的端口,targetPort是容器的端口,如果不写 targetPort, 那么就默认和port 一样
        name: http
      selector:
        app: ms-sms   # 这个service 把所有的 labels 为“app: ms-sms” 的pod选中,抽象为一个service,统一对-外提供服务
    ---
    apiVersion: extensions/v1beta1
    kind: Deployment         # 定义部署,多个 Deployment 可以组成一个 service
    metadata:
      namespace: dev
      name: ms-sms-v1
    spec:
      replicas: 1     #副本数量
      template:
        metadata:
          labels:
            app: ms-sms      #定义一个标签,可以被service 使用
            version: v1
        spec:
          imagePullSecrets:
          - name: geek-secret     #pull 私有镜像的时候,使用的密钥文件
          containers:
          - name: ms-sms
            image: xxxxxxxxxx/sms-dev:latest
            imagePullPolicy: Always    # Always:不管镜像是否存在都会进行一次拉取,适合我们标记为 latest的私有镜像
            ports:
            - containerPort: 8080
    ---
    

    相关文章

      网友评论

          本文标题:istio 里部署我们自己的应用

          本文链接:https://www.haomeiwen.com/subject/unnbvqtx.html