小编Jac*_*cob的帖子

kubernetes服务定义中targetPort和端口之间的区别

我正在尝试探索kubernetes服务.当我读取服务定义时,我发现有targetPort和port在服务定义中指定.

kind: Service
apiVersion: v1
metadata:
  name: my-service
spec:
  selector:
    app: MyApp
  ports:
  - protocol: TCP
    port: 80
    targetPort: 9376
Run Code Online (Sandbox Code Playgroud)

这里kubernetes服务定义中port和targetPort的区别是什么?谁有人澄清这种困惑?

service port kubernetes

75
推荐指数
9
解决办法
3万
查看次数

在部署到 Kubernetes 集群时,节点存在 pod 不能容忍错误的污点

我正在尝试将我的微服务部署到 Kubernetes 集群中。我的集群有一个主节点和一个工作节点。我为 Kubernetes 部署的研发创建了这个集群。当我尝试部署时,我收到了如下所示的偶数错误消息,

Events:
 Type     Reason            Age        From               Message
  ----     ------            ----       ----               -------
 Warning  FailedScheduling  <unknown>  default-scheduler  0/2 nodes are available: 2 node(s) had taints that the pod didn't tolerate
Run Code Online (Sandbox Code Playgroud)

我的尝试

当我在探索错误时,我在论坛中发现了一些关于在节点中重新启动 docker 等的评论。所以之后我重新启动了 Docker。但错误仍然相同。

当我尝试该命令时,kubectl get nodes它显示两个节点都是主节点并且都是ready状态。

NAME           STATUS   ROLES    AGE     VERSION
 mildevkub020   Ready    master   6d19h   v1.17.0
 mildevkub040   Ready    master   6d19h   v1.17.0
Run Code Online (Sandbox Code Playgroud)

我在这里没有找到工作节点。我用一个负载均衡器创建了一个主节点 (mildevkub020) 和一个工作节点 (mildev040)。我从以下链接中遵循了 Kubernetes 的官方文档,

https://kubernetes.io/docs/setup/production-environment/tools/kubeadm/high-availability/

我的问题

这个错误是因为集群问题吗?因为我没有找到集群工作节点。只有主节点。

kubernetes

28
推荐指数
4
解决办法
4万
查看次数

Turbine Dashboard未加载Spring Cloud微服务中的聚合

我正在尝试使用spring MVC和spring boot框架开发一个spring cloud微服务.和Eureka服务器,Zuul,Ribbon,hystrix和Turbine用于春天云.我已经开发了一个微服务并且只实现了hystrix仪表板.我可以使用hystrix仪表板.现在我正在实施更多服务.因此,我选择涡轮机进行监控聚合.但它没有获得仪表板.我在单独的弹簧启动项目中实施了涡轮机.

我的pom.xml包含,

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-hystrix-dashboard</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-turbine</artifactId>
</dependency>
Run Code Online (Sandbox Code Playgroud)

而我的主要课程包含,

@SpringBootApplication
@EnableHystrixDashboard
@EnableCircuitBreaker
@EnableTurbine

public class ZTurbineClientApplication {

    public static void main(String[] args) {
    SpringApplication.run(ZTurbineClientApplication.class, args);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的Turbine项目application.properties文件包含,

server.port=8085
spring.application.name=espace-Turbine
eureka.client.serviceUrl.defaultZone=http://localhost:8071/eureka/
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
turbine:
 aggregator:
  clusterConfig: APPCLUSTER
 app-config: espaceService1,espaceService2
 instanceUrlSuffix.APPCLUSTER: /hystrix.stream
Run Code Online (Sandbox Code Playgroud)

和我以前的第一个服务的application.properties文件一样

eureka.client.serviceUrl.defaultZone=http://localhost:8071/eureka/
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
spring.application.name=espaceService1
server.port=8080
eureka:
  instance:
    prefer-ip-address: true
    leaseRenewalIntervalInSeconds: 3
    leaseExpirationDurationInSeconds: 3
    metadata-map:
      cluster: APPCLUSTER
Run Code Online (Sandbox Code Playgroud)

第二个服务的应用程序属性文件包含,

eureka.client.serviceUrl.defaultZone=http://localhost:8071/eureka/
eureka.client.register-with-eureka=true
eureka.client.fetch-registry=true
spring.application.name=espaceService2
server.port=8081
eureka:
  instance:
    prefer-ip-address: …
Run Code Online (Sandbox Code Playgroud)

turbine spring-cloud

14
推荐指数
1
解决办法
796
查看次数

在CI / CD管道实施中为不同租户动态管理Dockerfile

我正在尝试使用Docker,Kubernetes和Jenkins为我的项目实现CI / CD管道。我的应用程序是多租户应用程序,其中数据库应用程序变量对于不同的租户来说都是不同的。

应用策略

在构建Docker映像时,我正在使用Dockerfile。然后将Dockerfile保留在SVN代码存储库中。对于每个租户,代码存储库都是相同的。在构建映像时,那时我需要为不同的租户构建不同的映像。

Dockerfile实现

在我的docker文件中,我添加了如下入口点,

ENTRYPOINT ["java", "-jar", "-Dspring.profiles.active=tenant1config" , "TestProject.war"]
Run Code Online (Sandbox Code Playgroud)

如果我需要为另一个租户构建Docker映像,则需要添加
-Dspring.profiles.active=tenant2config

因此,Dockerfile中的入口点是动态的。

我的困惑

  1. 用于动态管理Dockerfile中的入口点命令吗?
  2. 还是我需要为另一个租户添加另一个Dockerfile?是否需要为单独的租户单独运行docker build命令?

我如何找到实现此问题的良好标准方法?

docker dockerfile

13
推荐指数
1
解决办法
274
查看次数

使用Kubernetes集群中的Helm图表访问已部署的服务

当前,我正在尝试通过创建Helm图表在Kubernetes集群上部署微服务端点Docker映像。为此,我创建了图表并更改了values.yaml和deployment.yaml中的参数以进行端口更改。我也想从Angular前端访问。因此,我添加了服务类型= NodePort。当我描述服务时,它给了我30983访问的端口。

我像http:// node-ip:30983 / endpoint一样访问

但我只是得到无法访问该网站的消息。让我添加我在这里所做的详细信息:

我的values.yaml文件包含以下提到的服务类型:

在此处输入图片说明

和我的template / service.yaml文件包含如下内容:

在此处输入图片说明

而我的template / deployment.yaml文件包含以下内容:

在此处输入图片说明

我尝试访问如下内容:

http://192.168.16.177:30983/

而且只能到达站点。

注意:当我尝试描述服务时,会得到以下信息:

在此处输入图片说明

kubectl的输出获取pod --show-labels,如下图所示。

在此处输入图片说明

更新

当我们使用kubectl describe pod命令时,将如下所示:

在此处输入图片说明

更新错误

Readiness probe failed: HTTP probe failed with statuscode: 404
Liveness probe failed: HTTP probe failed with statuscode: 404
Run Code Online (Sandbox Code Playgroud)

如何从部署访问端点?

kubernetes kubernetes-helm

11
推荐指数
1
解决办法
830
查看次数

Kubernetes服务在默认名称空间而不是使用Helm定义的名称空间中进行部署

我正在尝试在2个不同环境开发和测试的Kuberenetes集群上部署我的微服务。我正在使用头盔图来部署我的Kubernetes服务。我正在使用Jenkinsfile部署图表。在Jenkinsfile内部,我在以下阶段添加了helm命令,

stage ('helmchartinstall')
                {
                    steps
                    {
                        sh 'helm upgrade --install kubekubedeploy --namespace test pipeline/spacestudychart'
                    }
                }
             }
Run Code Online (Sandbox Code Playgroud)

我在这里定义--namespace测试参数。但是在部署时,它将显示具有默认名称空间的控制台输出。我已经创建了名称空间test和prod。

当我检查Helm版本时,得到如下响应,

docker@mildevdcr01:~$ helm version
Client: &version.Version{SemVer:"v2.14.1", 
GitCommit:"5270352a09c7e8b6e8c9593002a73535276507c0", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.14.0", 
GitCommit:"05811b84a3f93603dd6c2fcfe57944dfa7ab7fd0", GitTreeState:"clean"}
Run Code Online (Sandbox Code Playgroud)

我在定义命名空间时犯了任何错误吗?

environment kubernetes kubernetes-helm

10
推荐指数
1
解决办法
244
查看次数

当使用POST COMMIT挂钩在SVN repo上提交代码时,Jenkins作业自动触发

我正在尝试使用Jenkins,docker和Ansible实现CI/CD管道.我正在为我的版本控制系统使用SVN代码库.对于部署和SVN代码仓库,我使用的是AWS EC2.部署和代码存储位于单独的VM中.

我的要求

当我将代码提交到SVN存储库时,我需要触发一个Jenkins Job.这项工作将调用一个ansible playbook.后来它将构建项目,构建Docker镜像并部署到EC2中.因此,对于我的SVN代码库的任何更改,我需要构建Jenkins作业.

我目前的尝试

我在$ repo/hooks文件夹下的post-commit.tmpl文件中添加了以下脚本.

REPOS="$1"
REV="$2"
UUID=`svnlook uuid $REPOS`
/usr/bin/wget \
  --header "Content-Type:text/plain;charset=UTF-8" \
  --post-data "`svnlook changed --revision $REV $REPOS`" \
  --output-document "-" \
  --timeout=2 \
  http://server/subversion/${UUID}/notifyCommit?rev=$REV
Run Code Online (Sandbox Code Playgroud)

以下是截图

在此输入图像描述

并检查了"Jenkins Job中的Poll SCM选项":

在此输入图像描述

注意:我不是在寻找分钟/小时/周的时间表来从回购中提取.而不是那样,我正在寻找代码更改,然后我需要构建Jenkins项目.所以我没有添加任何时间表.

但我仍然没有得到詹金斯的最新代码.如何找出与我的配置相关的问题?

更新了post-commit.tmpl文件

在此输入图像描述

svn jenkins

9
推荐指数
1
解决办法
1147
查看次数

使用Jenkins和kubernetes在CI / CD管道中实现反馈循环

目前,我正在尝试使用DevOps自动化工具(例如Jenkins和kubernetes)来实现CI / CD管道。我正在使用它们来部署使用Spring Boot和Maven项目创建的微服务。

现在,我已经使用Jenkins和Kubernetes成功部署了我的spring boot micro服务。我使用kubernetes部署到了不同的名称空间。当我提交时,一个后提交钩子将从我的SVN存储库中工作。那个提交后的钩子将触发詹金斯工作。

我的困惑

在实现CI / CD管道时,我了解了管道中反馈回路的实现。在这里,我感到困惑,如果我需要使用反馈循环的实现,那么在这里可以遵循哪些不同的方式?

谁能建议我找到在CI / CD管道中实现反馈循环的任何有用的文档/教程?

maven feedback-loop jenkins spring-boot kubernetes

9
推荐指数
1
解决办法
166
查看次数

使用节点端口方法无法在集群外部访问从集群部署的 kubernetes 服务

我正在尝试访问 Kubernetes 集群部署的 Spring Boot 微服务并尝试测试 REST API。我在部署脚本中配置了节点端口方法。但是当我尝试使用 Postman 工具访问时,我只得到“无法得到任何响应”的响应。

我像下面的结构一样配置了service.yaml脚本,

apiVersion: v1
kind: Service
metadata:
  name: my-service
spec:
  type: NodePort
  ports:
    - port: 7100
      targetPort: 7100
      protocol: TCP
      name: http
      nodePort: 31007
 selector:
      app: my-deployment
Run Code Online (Sandbox Code Playgroud)

我的deployment.yaml如下所示,

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-deployment
  labels:
    app: my-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: my-deployment
  template:
    metadata:
      labels:
        app: my-deployment
      annotations: 
        date: "+%H:%M:%S %d/%m/%y"
    spec:
      imagePullSecrets:
        - name: "regcred"
      containers:
       - name: my-deployment-container
         image: spacestudymilletech010/spacestudysecurityauthcontrol:latest
         imagePullPolicy: Always …
Run Code Online (Sandbox Code Playgroud)

kubernetes

8
推荐指数
1
解决办法
2015
查看次数

java.lang.Object; 无法转换为模型类:Spring Boot 中的错误

当我使用 Spring Boot 使用 JPQL 查询获取数据库数据并尝试循环数据时,出现以下错误,

{
"message": "[Ljava.lang.Object; cannot be cast to com.spacestudy.model.RoomCPCMapping",
"error": "Internal Server Error",
"path": "/spacestudy/rockefeller/survey/surveyform/occupant/getClientCPCWithPercentage"
}
Run Code Online (Sandbox Code Playgroud)

我的存储库查询如下所示,

@Query("SELECT u.nCCPCode,u.nPercent FROM RoomCPCMapping u JOIN u.clientCPC ur where u.nRoomAllocationId=:nRoomAllocationId")
List<RoomCPCMapping> findNCCPCodeByNRoomAllocationID(@Param(value="nRoomAllocationId") Integer nRoomAllocationId );
Run Code Online (Sandbox Code Playgroud)

我正在调用如下所示的查询函数,

List<RoomCPCMapping> 
        roomCpcMappingCodeObj = roomCPCMappingRepositoryObj.findNCCPCodeByNRoomAllocationID(nRoomAllocationID);
Run Code Online (Sandbox Code Playgroud)

通过使用结果对象,我试图像下面这样循环,

for(RoomCPCMapping rpcLoopObj:roomCpcMappingCodeObj)
    {
        if(clientCpcCodeMappingLoopObj.nClientCPCMappingId==rpcLoopObj.getnCCPCode())                    
             {
                clientCpcCodeMappingLoopObj.nPercentage=rpcLoopObj.nPercent;
                }
    }
Run Code Online (Sandbox Code Playgroud)

我的模型类如下所示,

@Entity
@Table(name="roomccpcmapping")
public class RoomCPCMapping implements Serializable
{   

/**
 * 
 */
private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "roomccpcmapping_seq_generator")
@SequenceGenerator(name = "roomccpcmapping_seq_generator", …
Run Code Online (Sandbox Code Playgroud)

java jpa spring-data-jpa spring-boot

8
推荐指数
1
解决办法
1265
查看次数