美文网首页
k8s的idea配置

k8s的idea配置

作者: david161 | 来源:发表于2022-03-11 12:17 被阅读0次

    idea安装k8s插件

    idea插件官网地址
    https://plugins.jetbrains.com/ 
    
    kubernetes地址: 
    https://plugins.jetbrains.com/plugin/10485-kubernetes
    
    查找对应自己idea版本的k8s插件信息

    help->about->查看idea内部版本信息 一定要注意版本信息,否则无法安装

    离线安装k8s插件
    因国外网站网速较慢,在线安装有安装失败的危险。推荐大家下载idea对应版本的插件后,进行离线安装
    
    193.5662.65 
    settings->plugins->Install Plugin from Disk->插件安装目录 
    
    安装完成后重启idea开发工具
    

    idea配置SSH客户端

    目标:在idea中打开终端操作k8s集群master节点。

    idea配置

    settings->Tools->SSH Configurations->新建

    使用SSH客户端

    Tools->Start SSH session->选择我们刚刚配置的ssh客户端名称

    新建yml类型文件

    idea默认没有yml文件类型。可以通过new->file->手工输入*.yml创建yml类型文件。也可以通过配置增加yml类型文件。
    settings->Edtior->File and Code Template->file->+(新建)


    image.png

    Remote Host

    目标:将idea工程中的文件上传k8s集群master节点。

    idea配置

    Tools->Deployment->Configurations->配置Remote Host

    使用Remote Host

    可以将本工程中的文件上传k8s集群

    NameSpace

    创建NameSpace

    操作指南:
    settings->Editor->Live Template->Kubernetes->查看自动生成的模板信息内容
    lagounamespace.yml
    在文件中输入kres,根据模板快速生成yml文件信息

    apiVersion: v1 
    kind: Namespace 
    metadata: 
        name: lagou
    

    通过idea的Remote Host快速将yml文件上传k8s集群进行测试

    mkdir -p /data/namespaces 
    cd /data/namespaces 
    
    kubectl apply -f lagounamespace.yml
    
    删除NameSpace

    kubectl delete -f lagounamespace.yml

    pod

    创建pod

    在idea工程resource/pod/tomcatpod.yml

    apiVersion: v1 
    kind: Pod 
    metadata: 
        name: tomcat9 
        labels: 
            app: tomcat9 
    spec: 
        containers: 
            - name: tomcat9 
              image: tomcat:9.0.20-jre8-alpine 
              imagePullPolicy: IfNotPresent 
        restartPolicy: Always
    
    镜像下载策略、重启策略

    imagePullPolicy:
    Always:总是拉取 pull
    IfNotPresent:如果本地有镜像,使用本地,如果本地没有镜像,下载镜像。
    Never:只使用本地镜像,从不拉取
    restartPolicy:
    Always:只要退出就重启。
    OnFailure:失败退出时(exit code不为0)才重启
    Never:永远不重启

    运行pod

    kubectl apply -f tomcatpod.yml

    测试pod

    curl 10.81.58.196:8080

    删除pod

    kubectl delete -f tomcatpod.yml

    deployment

    创建deployment

    在idea工程resource/deployment/tomcatdeployment.yml

    apiVersion: apps/v1 
    kind: Deployment 
    metadata: 
        name: tomcat-deployment 
        labels: 
            app: tomcat-deployment 
    spec: 
        replicas: 3 
        template: 
            metadata: 
               name: tomcat-deployment 
               labels: 
                   app: tomcat
            spec: 
                containers: 
                    - name: tomcat-deployment 
                      image: tomcat:9.0.20-jre8-alpine 
                      imagePullPolicy: IfNotPresent 
                restartPolicy: Always 
        selector: 
            matchLabels: 
                app: tomcat
    

    matchLabels

    总结: 
    在Deployment中必须写matchLables 
    在定义模板的时候必须定义labels,因为Deployment.spec.selector是必须字段,而他又必须和
    template.labels对应
    
    运行deployment

    kubectl apply -f tomcatdeployment.yml

    控制器类型
    image.png
    Deployment控制器介绍

    具有上线部署、滚动升级、创建副本、回滚到以前某一版本(成功/ 稳定)等功能。
    Deployment包含ReplicaSet,除非需要自定义升级功能或者根本不需要升级Pod,否则还是建议使用Deployment而不直接使用ReplicaSet 。

    删除Deployment

    kubectl delete -f tomcatdeployment.yml

    service

    创建service

    在idea工程resource/service/tomcatservice.yml

    apiVersion: apps/v1 
    kind: Deployment 
    metadata: 
      name: tomcat-deploy 
      labels: 
        app: tomcat-deploy 
    spec: 
      replicas: 1 
      template: 
        metadata: 
          name: tomcat-deploy 
            labels: 
              app: tomcat-pod 
            spec: 
              containers: 
                - name: tomcat-deploy 
                  image: tomcat:9.0.20-jre8-alpine 
                  imagePullPolicy: IfNotPresent 
                  ports: 
                    - containerPort: 8080 
              restartPolicy: Always 
      selector: 
        matchLabels: 
          app: tomcat-pod 
    --- 
    apiVersion: v1 
    kind: Service 
    metadata: 
      name: tomcat-svc 
    spec: 
      selector: 
        app: tomcat-pod 
        ports: 
          - port: 8888 
            targetPort: 8080 
            nodePort: 30088 
            protocol: TCP 
        type: NodePort
    

    service的selector
    请各位小伙伴注意: service.spec.selector.app选择的内容仍然是template.label.app内容。而不是我们 deployment控制器的label内容
    Service类型
    ClusterIP:默认,分配一个集群内部可以访问的虚拟IP
    NodePort:在每个Node上分配一个端口作为外部访问入口
    LoadBalancer:工作在特定的Cloud Provider上,例如Google Cloud,AWS,OpenStack
    ExternalName:表示把集群外部的服务引入到集群内部中来,即实现了集群内部pod和集群外部的服务进行通信
    Service参数
    port :访问service使用的端口
    targetPort :Pod中容器端口
    NodePort: 通过Node实现外网用户访问k8s集群内service(30000-32767)

    运行service

    kubectl apply -f tomcatservice.yml

    删除service

    kubectl delete -f tomcatservice.yml

    相关文章

      网友评论

          本文标题:k8s的idea配置

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