环境准备

  • 在华为云购买cce环境,设置node节点密码
  • 安装完成以后调整cce环境自带的安全组策略
  • 一台运维管理机
    部署nginx作为yaml文件的远程存放目录直接kubectl apply使用
    部署docker服务作为制作镜像使用管理机
    部署nfs作为挂载华为云文件存储的文件操作机使用

node节点安全组策略修改:

放通vpc的服务器访问容器内环境
对公司公网开放node-port型的service的所有随机端口
打通所需要安全组之间的内网互通
限制ssh端口只允许公司访问

control控制节点安全组策略修改:

修改内网安全组通讯

cce端口介绍连接

搭建环境

  • 直接在cce管理界面安装kubectl插件,安装完后记住用户名密码和访问连接
  • 安装dashboard插件,修改dashboard的用户权限,便于以后研发使用,下附yaml文件
kubectl edit ClusterRole  kubernetes-dashboard-minimal   -n kube-system# Please edit the object below. Lines beginning with a '#' will be ignored,
# and an empty file will abort the edit. If an error occurs while saving this file will be
# reopened with the relevant failures.
#
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:                                                                               creationTimestamp: "2021-07-06T08:52:07Z"                                             labels:                                                                               release: cceaddon-dashboard                                                         name: kubernetes-dashboard-minimal                                                    resourceVersion: "33743869"                                                           selfLink: /apis/rbac.authorization.k8s.io/v1/clusterroles/kubernetes-dashboard-minimaluid: af5bd859-6966-470f-989d-0247d9671082
rules:        - apiGroups:  - ""        resources:  - secrets     verbs:                           - create                         - apiGroups:                       - ""                             resources:                       - configmaps                     verbs:                           - create                         - apiGroups:                       - ""                             resourceNames:                   - kubernetes-dashboard-key-holder- kubernetes-dashboard-certs   - kubernetes-dashboard-csrf    resources:                     - secrets                      verbs:                         - get                          - update                       - delete                       - apiGroups:                     - ""                           resourceNames:                 - kubernetes-dashboard-settingsresources:  - configmapsverbs:     - get      - update- apiGroups:                                                                              - ""                                                                                    resources:                                                                            - pods                                                                                - pods/log                                                                            - pods/exec                                                                           verbs:                                                                                - get                                                                                 - list                                                                                - watch                                                                               - create                                                                              - delete                                                                              - apiGroups:                                                                            - ""                                     resources:                       - secrets                        verbs:                           - get                            - list                           - watch                          - apiGroups:                       - ""                             resources:                       - configmaps                     - services                       - persistentvolumeclaims         - events                         - replicationcontrollers         - namespaces                     - persistentvolumes              - nodes                          - endpoints                    - resourcequotas               - limitranges                  verbs:                         - get                          - list                         - watch                        - apiGroups:                     - extensions                   - apps                         resources:                     - deployments                  - deployments/scale     verbs:                  - get                   - list                  - watch                 - update- apiGroups:                                                                              - apps                                                                                  resources:                                                                            - statefulsets                                                                        - daemonsets                                                                          - replicasets                                                                         verbs:                                                                                - get                                                                                 - list                                                                                - watch                                                                               - apiGroups:                                                                            - extensions                                                                          resources:                                                                            - ingresses                              verbs:                           - get                            - list                           - watch                          - apiGroups:                       - batch                          resources:                       - jobs                           - cronjobs                       - replicasets                    verbs:                           - get                            - list                           - watch                          - apiGroups:                       - rbac.authorization.k8s.io      resources:                       - roles                        - clusterroles                 verbs:                         - get                          - list                         - watch                        - apiGroups:                     - storage.k8s.io               resources:                     - storageclasses               verbs:                         - get                          - list                     - watch- apiGroups:                       - ""                             resourceNames:                   - heapster                       - dashboard-metrics-scraper      resources:                       - services                       verbs:                           - proxy                          - apiGroups:                       - ""                             resourceNames:                 - heapster                     - 'http:heapster:'             - 'https:heapster:'            - dashboard-metrics-scraper    - http:dashboard-metrics-scraperresources:                      - services/proxy                verbs:                          - get                           - apiGroups:                      - metrics.k8s.io                resources:                      - pods                          - nodes                         verbs:                          - get                           - list                          - watch
  • 开通swr华为镜像仓库(jenkins打包制作镜像直接上传镜像仓库),增加仓库使用永久秘钥添加到jenkins服务器,并增加华为子账户可以单独访问控制swr镜像仓库
  • 搭建ELK
    对于日志收集规模不是很大的情况下,我们采用最简单的架构elasticsearch、filebeat、kibana
    对于日志收集规模比较大的情况下,我们可以采用filebeat—>kafka—>logstash—>elasticsearch 然后kibana展示出来
    filebeat
    在每个宿主机节点启动一个filebeat,把每个容器的日志都挂载到宿主机目录
    在cce以ds方式在每台宿主机部署filebeat
    Dockerfile配置文件制作镜像
FROM debian:jessie
# 如果更换版本,需在官网下载同版本LINUX64-BIT的sha替换FILEBEAT_SHA1
ENV FILEBEAT_VERSION=7.10.0 \ FILEBEAT_SHA1=509f0d7f2a16d70850c127dd20bea7c735fc749f8d90f8e797196d11887ceccf32d8d71e1177ae9dbe7c8d081133b7d75e431997123512fc17ee1e04e96a6bc5
ADD filebeat-7.10.0-linux-x86_64.tar.gz  /opt/
RUN set -x && \sed -i "s@http://ftp.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list && \sed -i "s@http://security.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list && \sed -i "s@http://deb.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list && \apt-get update && \apt-get install -y apt-transport-https && \apt-get install -y wget && \cd /opt && \cd filebeat-* && \cp filebeat /bin && \cd /opt && \rm -rf filebeat* && \apt-get purge -y wget && \apt-get autoremove -y && \apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \mkdir /data
COPY docker-entrypoint.sh /
ENTRYPOINT ["/bin/bash","/docker-entrypoint.sh"]

filebeat容器启动脚本

#!/bin/bashENV=${ENV:-"test"}         # 定义日志收集的环境
PROJ_NAME=${PROJ_NAME:-"no-define"}   # 定义项目名称
PASSWD=${PASSWD:-"H1BsfFprRCk"}
MULTILINE=${MULTILINE:-"^\["}      # 多行匹配,以2个数据开头的为一行,反之cat >/etc/filebeat.yaml << EOF
filebeat.inputs:
- type: logenabled: truepaths:- /data/*.log- /data/*/*.log- /data/*/*/*.log- /data/*/*/*/*.log- /data/*/*/*/*/*.logscan_frequency: 120smax_bytes: 10485760multiline.pattern: ${MULTILINE}multiline.negate: truemultiline.match: after
output.elasticsearch:hosts: ["192.168.1.213:9200"]index: "re_ks_cce_${ENV}_%{+YYYY.MM.dd}"username: "elastic"password: "${PASSWD}"
xpack.monitoring.enabled: true
xpack.monitoring.elasticsearch:
setup.ilm.enabled: false
setup.template.name: "re_ks_cce_${ENV}"
setup.template.pattern: "re_ks_cce_${ENV}*"
setup.template.enabled: false
setup.template.overwrite: true
EOFset -xeif [[ "$1" == "" ]]; thenexec filebeat  -c /etc/filebeat.yaml
elseexec "$@"
fi

安装包可以去清华源网站下载

cce平台手动创建ds
es和kibana找安装包二进制安装

  • 安装配置中心apollo直接二进制找到安装包单机启动
  • 直接在华为云平台插件安装nginx-ingress
  • 负载均衡需要有只对公司暴露的负载,有只对内网使用负载,有nginx-ingress专用负载
  • 在域名解析处配置域名解析

配置jenkins

jenkins安装pipline流水线插件,新建任务,每个服务一个任务
流水线脚本

def createVersion() {return new Date().format('yyyyMMdd_HHmm')
}
pipeline {agent anyenvironment {_version = createVersion()}parameters {string defaultValue: 'https://gitlab.bjkcwl.com/kcwl-service/kcwl-carrier.git', description: 'git地址,如需改动请重新填写,例如:https://gitlab.bjkcwl.com/kcwl-service/kcwl-carrier.git', name: 'git_address', trim: falsestring defaultValue: 'v5.x-beta', description: '分支名字,默认v5.x-beta', name: 'branch', trim: falsestring defaultValue: 'kc_base_jre:8u181-release-v0.3', description: '基础镜像', name: 'base_image', trim: falsestring defaultValue: 'v5.2', description: '镜像名字,例如:v5.2', name: 'add_tag', trim: falsestring defaultValue: 'kcwl-carrier', description: '项目jar包名称,例如:kcwl-carrier', name: 'project_name', trim: falsestring defaultValue: 'kcwl-carrier', description: '项目的deployment', name: 'deployment_name', trim: falsestring defaultValue: 'kcwl-test', description: '项目所在的名称空间名字,默认kcwl-test,如不清楚,咨询管理员', name: 'namespace', trim: false}stages {stage('clean') {steps {cleanWs()}}stage('pull code') {steps {checkout([$class: 'GitSCM', branches: [[name: '*/${branch}']], extensions: [], userRemoteConfigs: [[credentialsId: '7a7a70cc-0d39-4e1f-89a5-d74d80615580', url: '${git_address}']]])}}stage('maven') {steps {sh label: '', script: 'mvn clean install -Dmaven.test.skip=true'}}stage('package') {steps {sh label: '', script: """cd ./target && mkdir app &&  mv ${params.project_name}.jar ./app"""}}stage('image') {steps {writeFile file: './Dockerfile', text: """FROM swr.cn-north-4.myhuaweicloud.com/kcwl-test/${params.base_image}
ADD ./target/app  /software/app"""sh label: '', script: """docker build -t swr.cn-north-4.myhuaweicloud.com/kcwl-test/${params.project_name}:${branch}_${add_tag}_${_version} . && docker push swr.cn-north-4.myhuaweicloud.com/kcwl-test/${params.project_name}:${branch}_${add_tag}_${_version}"""}}stage('update_deployment') {steps {sh label: '', script: """ssh 121.36.48.177 'python3 /data/scripts/set_deployment.py ${params.deployment_name} ${params.namespace} swr.cn-north-4.myhuaweicloud.com/kcwl-test/${params.project_name}:${branch}_${add_tag}_${_version}' """}}}
}

搭建grafana+prometheus监控体系

首先安装export指标监控插件,版本yaml里面都有
以ds部署到到每台宿主机node-export.yaml文件:

kind: DaemonSet
apiVersion: apps/v1
metadata:name: node-exporternamespace: monitoringlabels:daemon: "node-exporter"grafanak8sapp: "true"
spec:selector:matchLabels:daemon: "node-exporter"grafanak8sapp: "true"template:metadata:name: node-exporterlabels:daemon: "node-exporter"grafanak8sapp: "true"spec:volumes:- name: prochostPath: path: /proctype: ""- name: syshostPath:path: /systype: ""- name: roothostPath:type: ""path: /containers:- name: node-exporterimage: swr.cn-north-4.myhuaweicloud.com/kcwl-test/prom/node-exporter:v1.0.1 imagePullPolicy: IfNotPresentargs:- --path.procfs=/host_proc- --path.sysfs=/host_sys- --path.rootfs=/host/rootports:- name: node-exporterhostPort: 9100containerPort: 9100protocol: TCPvolumeMounts:- name: sysreadOnly: truemountPath: /host_sys- name: procreadOnly: truemountPath: /host_proc- name: rootreadOnly: truemountPath: /host/rootimagePullSecrets:- name: default-secrethostNetwork: truehostPID: true

kube-state-metrics插件安装
rbac.yaml

apiVersion: v1
kind: ServiceAccount
metadata:labels:addonmanager.kubernetes.io/mode: Reconcilekubernetes.io/cluster-service: "true"name: kube-state-metricsnamespace: monitoring
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:labels:addonmanager.kubernetes.io/mode: Reconcilekubernetes.io/cluster-service: "true"name: kube-state-metrics
rules:
- apiGroups:- ""resources:- configmaps- secrets- nodes- pods- services- resourcequotas- replicationcontrollers- limitranges- persistentvolumeclaims- persistentvolumes- namespaces- endpointsverbs:- list- watch
- apiGroups:- policyresources:- poddisruptionbudgetsverbs:- list- watch
- apiGroups:- extensions- appsresources:- daemonsets- deployments- replicasetsverbs:- list- watch
- apiGroups:- appsresources:- statefulsetsverbs:- list- watch
- apiGroups:- batchresources:- cronjobs- jobsverbs:- list- watch
- apiGroups:- autoscalingresources:- horizontalpodautoscalersverbs:- list- watch
- apiGroups:- admissionregistration.k8s.ioresources:- validatingwebhookconfigurations- mutatingwebhookconfigurationsverbs:- list- watch
- apiGroups:- certificates.k8s.ioresources:- certificatesigningrequestsverbs:- list- watch
- apiGroups:- storage.k8s.ioresources:- volumeattachments- storageclassesverbs:- list- watch
- apiGroups:- networking.k8s.ioresources:- ingresses- networkpoliciesverbs:- list- watch
- apiGroups:- coordination.k8s.ioresources:- leasesverbs:- list- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:labels:addonmanager.kubernetes.io/mode: Reconcilekubernetes.io/cluster-service: "true"name: kube-state-metrics
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: kube-state-metrics
subjects:
- kind: ServiceAccountname: kube-state-metricsnamespace: monitoring

dp.yaml

apiVersion: apps/v1
kind: Deployment
metadata:annotations:deployment.kubernetes.io/revision: "2"labels:grafanak8sapp: "true"app: kube-state-metricsname: kube-state-metricsnamespace: monitoring
spec:selector:matchLabels:grafanak8sapp: "true"app: kube-state-metricsstrategy:rollingUpdate:maxSurge: 25%maxUnavailable: 25%type: RollingUpdatetemplate:metadata:labels:grafanak8sapp: "true"app: kube-state-metricsspec:containers:- name: kube-state-metricsimage: swr.cn-north-4.myhuaweicloud.com/kcwl-test/kube-state-metrics:v1.9.8imagePullPolicy: IfNotPresentports:- containerPort: 8080name: http-metricsprotocol: TCPreadinessProbe:failureThreshold: 3httpGet:path: /healthzport: 8080scheme: HTTPinitialDelaySeconds: 5periodSeconds: 10successThreshold: 1timeoutSeconds: 5imagePullSecrets:- name: default-secretserviceAccountName: kube-state-metrics

安装cadvisor-export
以ds方式安装在每台node节点上

apiVersion: apps/v1
kind: DaemonSet
metadata:name: cadvisornamespace: monitoringlabels:app: cadvisor
spec:selector:matchLabels:name: cadvisortemplate:metadata:labels:name: cadvisorspec:hostNetwork: truecontainers:- name: cadvisorimage: swr.cn-north-4.myhuaweicloud.com/kcwl-test/cadvisor:v0.33.0imagePullPolicy: IfNotPresentresources:requests:memory: 400Micpu: 400mlimits:memory: 1000Micpu: 800mvolumeMounts:- name: rootfsmountPath: /rootfsreadOnly: true- name: var-runmountPath: /var/run- name: sysmountPath: /sysreadOnly: true- name: dockermountPath: /var/lib/dockerreadOnly: trueports:- name: httpcontainerPort: 4195protocol: TCPreadinessProbe:tcpSocket:port: 4195initialDelaySeconds: 5periodSeconds: 10args:- -disable_metrics=udp- -housekeeping_interval=10s- -port=4195imagePullSecrets:- name: default-secret terminationGracePeriodSeconds: 30volumes:- name: rootfshostPath:path: /- name: var-runhostPath:path: /var/run- name: syshostPath:path: /sys- name: dockerhostPath:path: /var/lib/docker

安装blackbox插件获取服务健康检查监控
blackbox有一个界面需要暴露出去,可以根据需要设置黑白名单
yaml文件

cm.yaml

apiVersion: v1
kind: ConfigMap
metadata:labels:app: blackbox-exportername: blackbox-exporternamespace: monitoring
data:blackbox.yml: |-modules:http_2xx:prober: httptimeout: 2shttp:valid_http_versions: ["HTTP/1.1", "HTTP/2"]valid_status_codes: [200,301,302]method: GETpreferred_ip_protocol: "ip4"tcp_connect:prober: tcptimeout: 2s

dp.yaml

kind: Deployment
apiVersion: apps/v1
metadata:name: blackbox-exporternamespace: monitoring labels:app: blackbox-exporterannotations:deployment.kubernetes.io/revision: "1"
spec:replicas: 1selector:matchLabels:app: blackbox-exportertemplate:metadata:labels:app: blackbox-exporterspec:volumes:- name: configconfigMap:name: blackbox-exporterdefaultMode: 420containers:- name: blackbox-exporterimage: swr.cn-north-4.myhuaweicloud.com/kcwl-test/blackbox-exporter:v0.18.0 imagePullPolicy: IfNotPresentargs:- --config.file=/etc/blackbox_exporter/blackbox.yml- --log.level=info- --web.listen-address=:9115ports:- name: blackbox-portcontainerPort: 9115protocol: TCPresources:limits:cpu: 200mmemory: 256Mirequests:cpu: 100mmemory: 50MivolumeMounts:- name: configmountPath: /etc/blackbox_exporterreadinessProbe:tcpSocket:port: 9115initialDelaySeconds: 5timeoutSeconds: 5periodSeconds: 10successThreshold: 1failureThreshold: 3imagePullSecrets:- name: default-secret

svc.yaml

kind: Service
apiVersion: v1
metadata:name: blackbox-exporternamespace: monitoring
spec:selector:app: blackbox-exporterports:- name: blackbox-portprotocol: TCPport: 9115

ingress.yaml

直接cce操作页面直接创建,并且限制白名单ip访问

安装prometheus-server端
需要购买文件存储挂载到prometheus的数据存储目录
ingress根据实际情况设置黑白名单
rbac.yaml

apiVersion: v1
kind: ServiceAccount
metadata:labels:addonmanager.kubernetes.io/mode: Reconcilekubernetes.io/cluster-service: "true"name: prometheusnamespace: monitoring
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:labels:addonmanager.kubernetes.io/mode: Reconcilekubernetes.io/cluster-service: "true"name: prometheus
rules:
- apiGroups:- ""resources:- nodes- nodes/metrics- services- endpoints- podsverbs:- get- list- watch
- apiGroups:- ""resources:- configmapsverbs:- get
- nonResourceURLs:- /metricsverbs:- get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:labels:addonmanager.kubernetes.io/mode: Reconcilekubernetes.io/cluster-service: "true"name: prometheus
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: prometheus
subjects:
- kind: ServiceAccountname: prometheusnamespace: monitoring

dp.yaml

apiVersion: apps/v1
kind: Deployment
metadata:annotations:deployment.kubernetes.io/revision: "5"labels:name: prometheusname: prometheusnamespace: monitoring
spec:progressDeadlineSeconds: 600replicas: 1revisionHistoryLimit: 7selector:matchLabels:app: prometheusstrategy:rollingUpdate:maxSurge: 1maxUnavailable: 1type: RollingUpdatetemplate:metadata:labels:app: prometheusspec:nodeName: 192.168.3.65containers:- name: prometheusimage: swr.cn-north-4.myhuaweicloud.com/kcwl-test/prometheus:v2.23.0 imagePullPolicy: IfNotPresentcommand:- /bin/prometheusargs:- --config.file=/data/etc/prometheus.yml- --storage.tsdb.path=/data/prom-db- --storage.tsdb.min-block-duration=60m- --storage.tsdb.retention=360h- --web.enable-lifecycleports:- containerPort: 9090protocol: TCPvolumeMounts:- mountPath: /dataname: cce-sfs-kqsvrz6z-monitorsubPath: prometheusresources:requests:cpu: "1000m"memory: "8Gi"limits:cpu: "3000m"memory: "16Gi"imagePullSecrets:- name: default-secretsecurityContext:runAsUser: 0serviceAccountName: prometheusvolumes:- name: cce-sfs-kqsvrz6z-monitorpersistentVolumeClaim:claimName: cce-sfs-krcwvcll-v0dl-monitor

svc.yaml

apiVersion: v1
kind: Service
metadata:name: prometheusnamespace: monitoring
spec:ports:- port: 9090protocol: TCPtargetPort: 9090selector:app: prometheus

安装grafana
需要购买文件存储挂载到grafana的数据存储目录
rbac.yaml

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:labels:addonmanager.kubernetes.io/mode: Reconcilekubernetes.io/cluster-service: "true"name: grafana
rules:
- apiGroups:- "*"resources:- namespaces- deployments- podsverbs:- get- list- watch
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:labels:addonmanager.kubernetes.io/mode: Reconcilekubernetes.io/cluster-service: "true"name: grafana
roleRef:apiGroup: rbac.authorization.k8s.iokind: ClusterRolename: grafana
subjects:
- kind: Username: k8s-node

dp.yaml

apiVersion: apps/v1
kind: Deployment
metadata:labels:app: grafananame: grafananame: grafananamespace: monitoring
spec:progressDeadlineSeconds: 600replicas: 1revisionHistoryLimit: 7selector:matchLabels:name: grafanastrategy:rollingUpdate:maxSurge: 1maxUnavailable: 1type: RollingUpdatetemplate:metadata:labels:app: grafananame: grafanaspec:containers:- name: grafanaimage: swr.cn-north-4.myhuaweicloud.com/kcwl-test/grafana:7.5.10 imagePullPolicy: IfNotPresentports:- containerPort: 3000protocol: TCPvolumeMounts:- mountPath: /var/lib/grafananame: cce-sfs-grafanaimagePullSecrets:- name: default-secretsecurityContext:runAsUser: 0volumes:- name: cce-sfs-grafanapersistentVolumeClaim:claimName: cce-sfs-monitor-grafana #更换为创建好的pvc的名字

svc.yaml

apiVersion: v1
kind: Service
metadata:name: grafananamespace: monitoring
spec:ports:- port: 3000protocol: TCPtargetPort: 3000selector:app: grafana

ingress根据实际情况设置黑白名单

grafana确认启动好以后,需要进入grafana容器内部,安装以下插件

kubectl -n infra exec  -it grafana /bin/bash
# 以下命令在容器内执行
grafana-cli plugins install grafana-kubernetes-app(新版本已失效)
grafana-cli plugins install devopsprodigy-kubegraf-app(新版本安装)
grafana-cli plugins install grafana-clock-panel
grafana-cli plugins install grafana-piechart-panel
grafana-cli plugins install briangann-gauge-panel
grafana-cli plugins install natel-discrete-panel

jenkins配置k8s

安装kubernetes插件
需要提前配置生成一个证书
安装cfssl
此工具生成证书非常方便, pem证书与crt证书,编码一致可直接使用
vim admin-csr.json

{"CN": "admin","hosts": [],"key": {"algo": "rsa","size": 2048},"names": [{"C": "CN","ST": "HangZhou","L": "XS","O": "system:masters","OU": "System"}]
}

证书请求中的O 指定该证书的 Group 为 system:masters

而 RBAC 预定义的 ClusterRoleBinding 将 Group system:masters 与 ClusterRole cluster-admin 绑定,这就赋予了该证书具有所有集群权限 。

创建证书和私钥

cfssl gencert -ca=/etc/kubernetes/pki/ca.crt -ca-key=/etc/kubernetes/pki/ca.key --profile=kubernetes admin-csr.json | cfssljson -bare admin

最终生成以下3个文件:

admin.csr
admin-key.pem
admin.pem

通过openssl来转换成pkc格式:

openssl pkcs12 -export -out ./jenkins-admin.pfx -inkey ./admin-key.pem -in ./admin.pem -passout pass:secret

将jenkins-admin.pfx 下载至桌面

配置jenkins

apiVersion: v1
kind: Pod
metadata:name: hostaliases-pod
spec:hostAliases:- ip: "192.168.2.87"hostnames:- "jenkins.bjkcwl.com"- ip: "192.168.2.38"hostnames:- "gitlab.bjkcwl.com"

华为云cce生态环境搭建整理相关推荐

  1. 在华为云 CCE 上部署 EMQX MQTT 服务器集群

    云进入以「应用为中心」的云原生阶段,Operator 模式的出现,则为 Kubernetes 中的自动化任务创建配置与管理提供了一套行之有效的标准规范.通过将运维知识固化成高级语言 Go/Java 代 ...

  2. 【华为云CCE】 k8s部署nacos集群

    业务场景: 华为CCE,根据自己的nacos镜像,部署nacos集群.由于公司使用的是华为云CCE内网环境,不能通过外网下载镜像,只能根据公司自己的镜像进行部署.看了网上华为云CCE部署nacos集群 ...

  3. 华为云CCE集群节点磁盘告警处理

    目录 一.告警问题 二.问题分析 三.问题处理 四.结果验证 一.告警问题 监控在华为云CCE节点磁盘空间不足告警,节点磁盘使用率100%,看到告警有两种可能: 1.CCE节点磁盘空间不足 2.CCE ...

  4. 开放共赢,华为云WeLink生态联盟正式成立!

    今日,华为在京发布了"更懂企业"的智能工作平台华为云WeLink,并携手合作伙伴成立华为云WeLink生态联盟.其中首批加入华为云WeLink生态联盟的伙伴主要包括(排名不分先后) ...

  5. 如何花“一点点小钱”突破华为云CCE服务的“防线”

    摘要:有没有方法绕开CCE的限制,自由的调用K8s的API呢?有还便宜,2.4元/集群/天. 申明:所有的一切都是为了使得华为云可以更好,而不是为了diss它. 通过华为云购买多个K8s集群,又想使用 ...

  6. 阿里云ECS服务器环境搭建(2) —— ubuntu 16.04 安装中文输入法(搜狗输入法)

    阿里云ECS服务器环境搭建(2) -- ubuntu 16.04 安装中文输入法(搜狗输入法) 1. 环境 阿里云 ECS服务器 (4核 8G 4M) Ubuntu16.04-64-bit 图形界面 ...

  7. 蓝鲸智云统一开发环境搭建指南

    腾讯官方的<蓝鲸智云统一开发环境搭建指南> 蓝鲸应用统一开发环境指南 一:背景 蓝鲸应用开发需要依赖django,celery,mysql-client等第三方库,而像celery又依赖其 ...

  8. Citrix云桌面最小环境搭建

    Citrix云桌面最小环境搭建 Ps:这张图是网上前人总结的,可做参考. 首先,xenserver是我们存放虚拟机的地方,其系统结构是基于linux的:NFS服务器是存放iso镜像的地方:图上的CA. ...

  9. 【重大喜讯】六度共识云通过华为云鲲鹏生态兼容认证

    [重大喜讯]公元2020年10月30日下午,广州六度共识科技有限公司旗下区块链技术平台"六度共识云"通过中国华为云的鲲鹏生态兼容认证.意味着基于国产华为海思麒麟芯片的鲲鹏主机硬件产 ...

最新文章

  1. ios .framework动态库重签名
  2. 认识微服务-服务架构演变
  3. PHP读取qq群成员,js获取QQ群成员的经典代码
  4. 漫步线性代数二十七——矩阵对角化
  5. git的使用学习(五)git的分支管理
  6. Unity延迟和重复调用方法
  7. PETSHOP模式IDAL,SQLSERVERDAL,存储过程以及模型类代码的生成工具
  8. Java课程设计/大作业合集
  9. windows kafka下载安装
  10. wince怎么刷carplay_carplay wince安装版
  11. Kafka容错性测试
  12. CLC龍链:致力于打造基于区快链技术的全球跨境支付生态系统
  13. python如何编写温度转换_Python温度转换实例分析
  14. Composer学习
  15. 微信小程序设置页面背景颜色
  16. 使用spyder查询帮助文档
  17. 3、Spark 和 D3.js 分析航班大数据
  18. ERROR: Exception: Traceback
  19. 歌谣学前端之react之第一个helloworld程序
  20. 电脑开机设置启动项的命令是什么

热门文章

  1. 素描初习(一)---三棱锥
  2. mysql 1433端口映射_常见路由器的1433端口映射讲解
  3. 3.对互斥事件和条件概率的相互理解《zobol的考研概率论教程》
  4. 什么是浮动塌陷css,css样式float造成的浮动“塌陷”问题的解决办法
  5. 蔡徐坤鼓励师,你安装了吗?
  6. 20060427-汉字区位码查询与算法——microsoft visual studio 2005系列
  7. 内存地址对齐问题研究所分析
  8. 苹果手机怎么看文本文档
  9. FPGA学习笔记2.2——用Verilog实现七段管的工作逻辑
  10. 共享红色理念创业计划书PPT模板