小编Sve*_*ven的帖子

Kubernetes在Pod中获取NodePort映射

我正在将应用程序迁移到Docker / Kubernetes。此应用程序具有20多个知名端口,需要对其进行访问。需要从kubernetes集群外部访问它。为此,应用程序将其公共可访问的IP写入数据库,以便外部服务知道如何访问它。该IP来自向下的API(status.hostIP)。

一种解决方案是在服务中将众所周知的端口定义为(静态)nodePort,但是我不希望这样做,因为这会限制节点的可用性:如果另一个服务已启动并偶然占用了一个已知端口,则应用程序将无法启动。另外,由于Kubernetes在群集中所有节点上打开端口,所以每个群集只能运行1个应用程序实例。

现在,我想让应用程序知道由NodePort服务完成的端口映射。如何才能做到这一点?如我所见ServiceStatefulset在Kubernetes中没有和之间的硬链接。

这是我的(简化的)Kubernetes配置:

apiVersion: v1
kind: Service
metadata:
  name: my-app-svc
  labels:
    app: my-app
spec:
  ports:
    - port: 6000
      targetPort: 6000
      protocol: TCP
      name: debug-port
    - port: 6789
      targetPort: 6789
      protocol: TCP
      name: traffic-port-1
  selector:
    app: my-app
  type: NodePort

---
apiVersion: apps/v1
kind: StatefulSet
metadata:
    name: my-app-sf
spec:
    serviceName: my-app-svc
    replicas: 1
    selector:
      matchLabels:
        app: my-app
    template:
      metadata:
        labels:
          app: my-app
      spec:
          containers:
            - name: my-app
              image: my-repo/myapp/my-app:latest
              imagePullPolicy: Always
              env:
                - …
Run Code Online (Sandbox Code Playgroud)

kubernetes

4
推荐指数
1
解决办法
651
查看次数

Java 应用程序作为 systemd 服务

我正在尝试在 CentOS7 中将 java 应用程序作为系统服务运行。该 jar 应该由特定用户运行:appuser。我有一个 shell 脚本,它使用以下命令运行 jar。整个脚本要大得多,因为它还处理停止、重新启动和状态,但这是开始部分:

servicename="myservice"
user="appuser"
pid_file="/var/run/$servicename.pid"
get_pid_from_file() {
  cat "$pid_file"
}
get_pids() {
  (ps -ef | grep myjar | grep $user | grep -v grep | awk '{print $2}')
}

is_running() {
  ! [ -z "`get_pids`" ] || ([ -f "$pid_file" ] && ps `get_pid_from_file` > /dev/null 2>&1)
}
case "$1" in
  start)
    if is_running; then
      echo "Already started"
    else
      case "$2" in
        *)
    su -s /bin/sh $user -c "cd /app/myworkingdir ; java …
Run Code Online (Sandbox Code Playgroud)

java linux service init centos7

2
推荐指数
1
解决办法
5623
查看次数

标签 统计

centos7 ×1

init ×1

java ×1

kubernetes ×1

linux ×1

service ×1