Open JeffreyVIP opened 10 months ago
kuboard的ETCD作为kuboard内部的服务来使用,不应该占用Node IP的端口,用statefulset可能更合适一点。
不应该走hostip ,要为etcd服务单独创建一个service 来提供给kuboard调用,而不是 节点的IP和端口。
试试这个 如果是单副本请自行修改etcd 列表保留一个
---
apiVersion: v1
kind: Namespace
metadata:
name: kuboard
---
apiVersion: v1
kind: ConfigMap
metadata:
name: kuboard-v3-config
namespace: kuboard
data:
# 关于如下参数的解释,请参考文档 https://kuboard.cn/install/v3/install-built-in.html
# [common]
KUBOARD_ENDPOINT: 'http://kuboard-v3'
KUBOARD_AGENT_SERVER_UDP_PORT: '30081'
KUBOARD_AGENT_SERVER_TCP_PORT: '30081'
KUBOARD_SERVER_LOGRUS_LEVEL: info # error / debug / trace
# KUBOARD_AGENT_KEY 是 Agent 与 Kuboard 通信时的密钥,请修改为一个任意的包含字母、数字的32位字符串,此密钥变更后,需要删除 Kuboard Agent 重新导入。
KUBOARD_AGENT_KEY: 32b7d6572c6255211b4eec9009e4a816
# 关于如下参数的解释,请参考文档 https://kuboard.cn/install/v3/install-gitlab.html
# [gitlab login]
# KUBOARD_LOGIN_TYPE: "gitlab"
# KUBOARD_ROOT_USER: "your-user-name-in-gitlab"
# GITLAB_BASE_URL: "http://gitlab.mycompany.com"
# GITLAB_APPLICATION_ID: "7c10882aa46810a0402d17c66103894ac5e43d6130b81c17f7f2d8ae182040b5"
# GITLAB_CLIENT_SECRET: "77c149bd3a4b6870bffa1a1afaf37cba28a1817f4cf518699065f5a8fe958889"
# 关于如下参数的解释,请参考文档 https://kuboard.cn/install/v3/install-github.html
# [github login]
# KUBOARD_LOGIN_TYPE: "github"
# KUBOARD_ROOT_USER: "your-user-name-in-github"
# GITHUB_CLIENT_ID: "17577d45e4de7dad88e0"
# GITHUB_CLIENT_SECRET: "ff738553a8c7e9ad39569c8d02c1d85ec19115a7"
# 关于如下参数的解释,请参考文档 https://kuboard.cn/install/v3/install-ldap.html
# [ldap login]
# KUBOARD_LOGIN_TYPE: "ldap"
# KUBOARD_ROOT_USER: "your-user-name-in-ldap"
# LDAP_HOST: "ldap-ip-address:389"
# LDAP_BIND_DN: "cn=admin,dc=example,dc=org"
# LDAP_BIND_PASSWORD: "admin"
# LDAP_BASE_DN: "dc=example,dc=org"
# LDAP_FILTER: "(objectClass=posixAccount)"
# LDAP_ID_ATTRIBUTE: "uid"
# LDAP_USER_NAME_ATTRIBUTE: "uid"
# LDAP_EMAIL_ATTRIBUTE: "mail"
# LDAP_DISPLAY_NAME_ATTRIBUTE: "cn"
# LDAP_GROUP_SEARCH_BASE_DN: "dc=example,dc=org"
# LDAP_GROUP_SEARCH_FILTER: "(objectClass=posixGroup)"
# LDAP_USER_MACHER_USER_ATTRIBUTE: "gidNumber"
# LDAP_USER_MACHER_GROUP_ATTRIBUTE: "gidNumber"
# LDAP_GROUP_NAME_ATTRIBUTE: "cn"
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: kuboard-etcd
namespace: kuboard
labels:
app: kuboard-etcd
spec:
serviceName: kuboard-etcd
replicas: 3
selector:
matchLabels:
app: kuboard-etcd
template:
metadata:
name: kuboard-etcd
labels:
app: kuboard-etcd
spec:
containers:
- name: kuboard-etcd
image: swr.cn-east-2.myhuaweicloud.com/kuboard/etcd:v3.4.14
ports:
- containerPort: 2379
name: client
- containerPort: 2380
name: peer
env:
- name: KUBOARD_ETCD_ENDPOINTS
value: >-
kuboard-etcd-0.kuboard-etcd:2379,kuboard-etcd-1.kuboard-etcd:2379,kuboard-etcd-2.kuboard-etcd:2379
volumeMounts:
- name: data
mountPath: /data
command:
- /bin/sh
- -c
- |
PEERS="kuboard-etcd-0=http://kuboard-etcd-0.kuboard-etcd:2380,kuboard-etcd-1=http://kuboard-etcd-1.kuboard-etcd:2380,kuboard-etcd-2=http://kuboard-etcd-2.kuboard-etcd:2380"
exec etcd --name ${HOSTNAME} \
--listen-peer-urls http://0.0.0.0:2380 \
--listen-client-urls http://0.0.0.0:2379 \
--advertise-client-urls http://${HOSTNAME}.kuboard-etcd:2379 \
--initial-advertise-peer-urls http://${HOSTNAME}:2380 \
--initial-cluster-token kuboard-etcd-cluster-1 \
--initial-cluster ${PEERS} \
--initial-cluster-state new \
--data-dir /data/kuboard.etcd
volumeClaimTemplates:
- apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2Gi
storageClassName: openebs-hostpath
volumeMode: Filesystem
---
apiVersion: v1
kind: Service
metadata:
name: kuboard-etcd
namespace: kuboard
spec:
type: ClusterIP
ports:
- port: 2379
name: client
- port: 2380
name: peer
selector:
app: kuboard-etcd
---
apiVersion: apps/v1
kind: Deployment
metadata:
annotations:
app: kuboard-v3
labels:
app: kuboard-v3
name: kuboard-v3
namespace: kuboard
spec:
replicas: 1
selector:
matchLabels:
app: kuboard-v3
template:
metadata:
labels:
app: kuboard-v3
spec:
containers:
- env:
- name: KUBOARD_ETCD_ENDPOINTS
value: kuboard-etcd-0.kuboard-etcd:2379,kuboard-etcd-1.kuboard-etcd:2379,kuboard-etcd-2.kuboard-etcd:2379
envFrom:
- configMapRef:
name: kuboard-v3-config
image: 'swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3'
imagePullPolicy: IfNotPresent
name: kuboard
livenessProbe:
failureThreshold: 3
httpGet:
path: /kuboard-resources/version.json
port: 80
scheme: HTTP
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
ports:
- containerPort: 80
name: web
protocol: TCP
- containerPort: 443
name: https
protocol: TCP
- containerPort: 10081
name: peer
protocol: TCP
- containerPort: 10081
name: peer-u
protocol: UDP
readinessProbe:
failureThreshold: 3
httpGet:
path: /kuboard-resources/version.json
port: 80
scheme: HTTP
initialDelaySeconds: 30
periodSeconds: 10
successThreshold: 1
timeoutSeconds: 1
resources: {}
dnsPolicy: ClusterFirst
restartPolicy: Always
---
apiVersion: v1
kind: Service
metadata:
labels:
app: kuboard-v3
name: kuboard-v3
namespace: kuboard
spec:
ports:
- name: webui
nodePort: 30080
port: 80
protocol: TCP
targetPort: 80
- name: agentservertcp
nodePort: 30081
port: 10081
protocol: TCP
targetPort: 10081
- name: agentserverudp
nodePort: 30081
port: 10081
protocol: UDP
targetPort: 10081
selector:
app: kuboard-v3
sessionAffinity: None
type: NodePort
试试这个 如果是单副本请自行修改etcd 列表保留一个
--- apiVersion: v1 kind: Namespace metadata: name: kuboard --- apiVersion: v1 kind: ConfigMap metadata: name: kuboard-v3-config namespace: kuboard data: # 关于如下参数的解释,请参考文档 https://kuboard.cn/install/v3/install-built-in.html # [common] KUBOARD_ENDPOINT: 'http://kuboard-v3' KUBOARD_AGENT_SERVER_UDP_PORT: '30081' KUBOARD_AGENT_SERVER_TCP_PORT: '30081' KUBOARD_SERVER_LOGRUS_LEVEL: info # error / debug / trace # KUBOARD_AGENT_KEY 是 Agent 与 Kuboard 通信时的密钥,请修改为一个任意的包含字母、数字的32位字符串,此密钥变更后,需要删除 Kuboard Agent 重新导入。 KUBOARD_AGENT_KEY: 32b7d6572c6255211b4eec9009e4a816 # 关于如下参数的解释,请参考文档 https://kuboard.cn/install/v3/install-gitlab.html # [gitlab login] # KUBOARD_LOGIN_TYPE: "gitlab" # KUBOARD_ROOT_USER: "your-user-name-in-gitlab" # GITLAB_BASE_URL: "http://gitlab.mycompany.com" # GITLAB_APPLICATION_ID: "7c10882aa46810a0402d17c66103894ac5e43d6130b81c17f7f2d8ae182040b5" # GITLAB_CLIENT_SECRET: "77c149bd3a4b6870bffa1a1afaf37cba28a1817f4cf518699065f5a8fe958889" # 关于如下参数的解释,请参考文档 https://kuboard.cn/install/v3/install-github.html # [github login] # KUBOARD_LOGIN_TYPE: "github" # KUBOARD_ROOT_USER: "your-user-name-in-github" # GITHUB_CLIENT_ID: "17577d45e4de7dad88e0" # GITHUB_CLIENT_SECRET: "ff738553a8c7e9ad39569c8d02c1d85ec19115a7" # 关于如下参数的解释,请参考文档 https://kuboard.cn/install/v3/install-ldap.html # [ldap login] # KUBOARD_LOGIN_TYPE: "ldap" # KUBOARD_ROOT_USER: "your-user-name-in-ldap" # LDAP_HOST: "ldap-ip-address:389" # LDAP_BIND_DN: "cn=admin,dc=example,dc=org" # LDAP_BIND_PASSWORD: "admin" # LDAP_BASE_DN: "dc=example,dc=org" # LDAP_FILTER: "(objectClass=posixAccount)" # LDAP_ID_ATTRIBUTE: "uid" # LDAP_USER_NAME_ATTRIBUTE: "uid" # LDAP_EMAIL_ATTRIBUTE: "mail" # LDAP_DISPLAY_NAME_ATTRIBUTE: "cn" # LDAP_GROUP_SEARCH_BASE_DN: "dc=example,dc=org" # LDAP_GROUP_SEARCH_FILTER: "(objectClass=posixGroup)" # LDAP_USER_MACHER_USER_ATTRIBUTE: "gidNumber" # LDAP_USER_MACHER_GROUP_ATTRIBUTE: "gidNumber" # LDAP_GROUP_NAME_ATTRIBUTE: "cn" --- apiVersion: apps/v1 kind: StatefulSet metadata: name: kuboard-etcd namespace: kuboard labels: app: kuboard-etcd spec: serviceName: kuboard-etcd replicas: 3 selector: matchLabels: app: kuboard-etcd template: metadata: name: kuboard-etcd labels: app: kuboard-etcd spec: containers: - name: kuboard-etcd image: swr.cn-east-2.myhuaweicloud.com/kuboard/etcd:v3.4.14 ports: - containerPort: 2379 name: client - containerPort: 2380 name: peer env: - name: KUBOARD_ETCD_ENDPOINTS value: >- kuboard-etcd-0.kuboard-etcd:2379,kuboard-etcd-1.kuboard-etcd:2379,kuboard-etcd-2.kuboard-etcd:2379 volumeMounts: - name: data mountPath: /data command: - /bin/sh - -c - | PEERS="kuboard-etcd-0=http://kuboard-etcd-0.kuboard-etcd:2380,kuboard-etcd-1=http://kuboard-etcd-1.kuboard-etcd:2380,kuboard-etcd-2=http://kuboard-etcd-2.kuboard-etcd:2380" exec etcd --name ${HOSTNAME} \ --listen-peer-urls http://0.0.0.0:2380 \ --listen-client-urls http://0.0.0.0:2379 \ --advertise-client-urls http://${HOSTNAME}.kuboard-etcd:2379 \ --initial-advertise-peer-urls http://${HOSTNAME}:2380 \ --initial-cluster-token kuboard-etcd-cluster-1 \ --initial-cluster ${PEERS} \ --initial-cluster-state new \ --data-dir /data/kuboard.etcd volumeClaimTemplates: - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: data spec: accessModes: - ReadWriteOnce resources: requests: storage: 2Gi storageClassName: openebs-hostpath volumeMode: Filesystem --- apiVersion: v1 kind: Service metadata: name: kuboard-etcd namespace: kuboard spec: type: ClusterIP ports: - port: 2379 name: client - port: 2380 name: peer selector: app: kuboard-etcd --- apiVersion: apps/v1 kind: Deployment metadata: annotations: app: kuboard-v3 labels: app: kuboard-v3 name: kuboard-v3 namespace: kuboard spec: replicas: 1 selector: matchLabels: app: kuboard-v3 template: metadata: labels: app: kuboard-v3 spec: containers: - env: - name: KUBOARD_ETCD_ENDPOINTS value: kuboard-etcd-0.kuboard-etcd:2379,kuboard-etcd-1.kuboard-etcd:2379,kuboard-etcd-2.kuboard-etcd:2379 envFrom: - configMapRef: name: kuboard-v3-config image: 'swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3' imagePullPolicy: IfNotPresent name: kuboard livenessProbe: failureThreshold: 3 httpGet: path: /kuboard-resources/version.json port: 80 scheme: HTTP initialDelaySeconds: 30 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 ports: - containerPort: 80 name: web protocol: TCP - containerPort: 443 name: https protocol: TCP - containerPort: 10081 name: peer protocol: TCP - containerPort: 10081 name: peer-u protocol: UDP readinessProbe: failureThreshold: 3 httpGet: path: /kuboard-resources/version.json port: 80 scheme: HTTP initialDelaySeconds: 30 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 resources: {} dnsPolicy: ClusterFirst restartPolicy: Always --- apiVersion: v1 kind: Service metadata: labels: app: kuboard-v3 name: kuboard-v3 namespace: kuboard spec: ports: - name: webui nodePort: 30080 port: 80 protocol: TCP targetPort: 80 - name: agentservertcp nodePort: 30081 port: 10081 protocol: TCP targetPort: 10081 - name: agentserverudp nodePort: 30081 port: 10081 protocol: UDP targetPort: 10081 selector: app: kuboard-v3 sessionAffinity: None type: NodePort
etcd的pvc没有声明吧
试试这个 如果是单副本请自行修改etcd 列表保留一个
--- apiVersion: v1 kind: Namespace metadata: name: kuboard --- apiVersion: v1 kind: ConfigMap metadata: name: kuboard-v3-config namespace: kuboard data: # 关于如下参数的解释,请参考文档 https://kuboard.cn/install/v3/install-built-in.html # [common] KUBOARD_ENDPOINT: 'http://kuboard-v3' KUBOARD_AGENT_SERVER_UDP_PORT: '30081' KUBOARD_AGENT_SERVER_TCP_PORT: '30081' KUBOARD_SERVER_LOGRUS_LEVEL: info # error / debug / trace # KUBOARD_AGENT_KEY 是 Agent 与 Kuboard 通信时的密钥,请修改为一个任意的包含字母、数字的32位字符串,此密钥变更后,需要删除 Kuboard Agent 重新导入。 KUBOARD_AGENT_KEY: 32b7d6572c6255211b4eec9009e4a816 # 关于如下参数的解释,请参考文档 https://kuboard.cn/install/v3/install-gitlab.html # [gitlab login] # KUBOARD_LOGIN_TYPE: "gitlab" # KUBOARD_ROOT_USER: "your-user-name-in-gitlab" # GITLAB_BASE_URL: "http://gitlab.mycompany.com" # GITLAB_APPLICATION_ID: "7c10882aa46810a0402d17c66103894ac5e43d6130b81c17f7f2d8ae182040b5" # GITLAB_CLIENT_SECRET: "77c149bd3a4b6870bffa1a1afaf37cba28a1817f4cf518699065f5a8fe958889" # 关于如下参数的解释,请参考文档 https://kuboard.cn/install/v3/install-github.html # [github login] # KUBOARD_LOGIN_TYPE: "github" # KUBOARD_ROOT_USER: "your-user-name-in-github" # GITHUB_CLIENT_ID: "17577d45e4de7dad88e0" # GITHUB_CLIENT_SECRET: "ff738553a8c7e9ad39569c8d02c1d85ec19115a7" # 关于如下参数的解释,请参考文档 https://kuboard.cn/install/v3/install-ldap.html # [ldap login] # KUBOARD_LOGIN_TYPE: "ldap" # KUBOARD_ROOT_USER: "your-user-name-in-ldap" # LDAP_HOST: "ldap-ip-address:389" # LDAP_BIND_DN: "cn=admin,dc=example,dc=org" # LDAP_BIND_PASSWORD: "admin" # LDAP_BASE_DN: "dc=example,dc=org" # LDAP_FILTER: "(objectClass=posixAccount)" # LDAP_ID_ATTRIBUTE: "uid" # LDAP_USER_NAME_ATTRIBUTE: "uid" # LDAP_EMAIL_ATTRIBUTE: "mail" # LDAP_DISPLAY_NAME_ATTRIBUTE: "cn" # LDAP_GROUP_SEARCH_BASE_DN: "dc=example,dc=org" # LDAP_GROUP_SEARCH_FILTER: "(objectClass=posixGroup)" # LDAP_USER_MACHER_USER_ATTRIBUTE: "gidNumber" # LDAP_USER_MACHER_GROUP_ATTRIBUTE: "gidNumber" # LDAP_GROUP_NAME_ATTRIBUTE: "cn" --- apiVersion: apps/v1 kind: StatefulSet metadata: name: kuboard-etcd namespace: kuboard labels: app: kuboard-etcd spec: serviceName: kuboard-etcd replicas: 3 selector: matchLabels: app: kuboard-etcd template: metadata: name: kuboard-etcd labels: app: kuboard-etcd spec: containers: - name: kuboard-etcd image: swr.cn-east-2.myhuaweicloud.com/kuboard/etcd:v3.4.14 ports: - containerPort: 2379 name: client - containerPort: 2380 name: peer env: - name: KUBOARD_ETCD_ENDPOINTS value: >- kuboard-etcd-0.kuboard-etcd:2379,kuboard-etcd-1.kuboard-etcd:2379,kuboard-etcd-2.kuboard-etcd:2379 volumeMounts: - name: data mountPath: /data command: - /bin/sh - -c - | PEERS="kuboard-etcd-0=http://kuboard-etcd-0.kuboard-etcd:2380,kuboard-etcd-1=http://kuboard-etcd-1.kuboard-etcd:2380,kuboard-etcd-2=http://kuboard-etcd-2.kuboard-etcd:2380" exec etcd --name ${HOSTNAME} \ --listen-peer-urls http://0.0.0.0:2380 \ --listen-client-urls http://0.0.0.0:2379 \ --advertise-client-urls http://${HOSTNAME}.kuboard-etcd:2379 \ --initial-advertise-peer-urls http://${HOSTNAME}:2380 \ --initial-cluster-token kuboard-etcd-cluster-1 \ --initial-cluster ${PEERS} \ --initial-cluster-state new \ --data-dir /data/kuboard.etcd volumeClaimTemplates: - apiVersion: v1 kind: PersistentVolumeClaim metadata: name: data spec: accessModes: - ReadWriteOnce resources: requests: storage: 2Gi storageClassName: openebs-hostpath volumeMode: Filesystem --- apiVersion: v1 kind: Service metadata: name: kuboard-etcd namespace: kuboard spec: type: ClusterIP ports: - port: 2379 name: client - port: 2380 name: peer selector: app: kuboard-etcd --- apiVersion: apps/v1 kind: Deployment metadata: annotations: app: kuboard-v3 labels: app: kuboard-v3 name: kuboard-v3 namespace: kuboard spec: replicas: 1 selector: matchLabels: app: kuboard-v3 template: metadata: labels: app: kuboard-v3 spec: containers: - env: - name: KUBOARD_ETCD_ENDPOINTS value: kuboard-etcd-0.kuboard-etcd:2379,kuboard-etcd-1.kuboard-etcd:2379,kuboard-etcd-2.kuboard-etcd:2379 envFrom: - configMapRef: name: kuboard-v3-config image: 'swr.cn-east-2.myhuaweicloud.com/kuboard/kuboard:v3' imagePullPolicy: IfNotPresent name: kuboard livenessProbe: failureThreshold: 3 httpGet: path: /kuboard-resources/version.json port: 80 scheme: HTTP initialDelaySeconds: 30 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 ports: - containerPort: 80 name: web protocol: TCP - containerPort: 443 name: https protocol: TCP - containerPort: 10081 name: peer protocol: TCP - containerPort: 10081 name: peer-u protocol: UDP readinessProbe: failureThreshold: 3 httpGet: path: /kuboard-resources/version.json port: 80 scheme: HTTP initialDelaySeconds: 30 periodSeconds: 10 successThreshold: 1 timeoutSeconds: 1 resources: {} dnsPolicy: ClusterFirst restartPolicy: Always --- apiVersion: v1 kind: Service metadata: labels: app: kuboard-v3 name: kuboard-v3 namespace: kuboard spec: ports: - name: webui nodePort: 30080 port: 80 protocol: TCP targetPort: 80 - name: agentservertcp nodePort: 30081 port: 10081 protocol: TCP targetPort: 10081 - name: agentserverudp nodePort: 30081 port: 10081 protocol: UDP targetPort: 10081 selector: app: kuboard-v3 sessionAffinity: None type: NodePort
etcd的pvc没有声明吧
你仔细看看吧
最新的版本测试 因为K8S部分的ETCD占用了2379端口,而kuboard Pod启动时默认使用Master节点的HOST IP的 2379作为LISTEN端口,导致kuboard ETCD无法启动