本文来自腾讯蓝鲸智云社区用户:donkey

应用一台服务器,既是k8s master节点又是node节点。

根底环境信息

零碎:CentOS 7.9
CPU/内存: 64C/128G

机器信息

k8s环境筹备

装置docker ,docker版本要求:19.03 及更高

yum -y install wget wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repoyum install epel-release -yyum install container-selinux -ywget -O /etc/yum.repos.d/docker-ce.repo  https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum -y install docker-ce-20.10.20-3.el7

装置k8s
这里应用github上开源的一个ansible脚本来装置k8s

# 装置 git 命令行yum install git -y# 克隆本我的项目代码git clone https://github.com/choerodon/kubeadm-ha.git# 进入我的项目目录cd kubeadm-ha# 装置 ansible 环境sudo ./ansible/install.sh配置好 ansible inventory 文件,而后执行ansible-playbook -i inventory.ini 90-init-cluster.yml注:1、更具体的阐明,能够查看https://github.com/choerodon/kubeadm-ha.git2、这个脚本的应用最次要的是配置inventory文件,以下我的inventory文件的内容[all]10.16.34.37 ansible_port=22 ansible_user="root" ansible_ssh_pass="机器明码"[lb][etcd]10.16.34.37[kube-master]10.16.34.37[kube-worker]10.16.34.37[new-master][new-worker][new-etcd][del-worker][del-master][del-etcd][del-node][all:vars]skip_verify_node=falsekube_version="1.20.0"container_manager="docker"lb_mode="nginx"lb_kube_apiserver_port="8443"kube_pod_subnet="10.244.0.0/18"kube_service_subnet="10.244.64.0/18"kube_network_node_prefix="24"kube_max_pods="400"network_plugin="calico"kubelet_root_dir="/data/kubelet"docker_storage_dir="/data/docker"containerd_storage_dir="/data/containerd"etcd_data_dir="/data/etcd"

部署NFS,并配置相应的存储类

mkdir /data/nfsyum install -y nfs-utilsecho '/data/nfs 10.16.34.0/24(rw,sync,insecure,no_subtree_check,no_root_squash)' > /etc/exportssudo systemctl enable nfs-serversudo systemctl start nfs-serverhelm repo add c7n https://openchart.choerodon.com.cn/choerodon/c7n/helm repo updatehelm upgrade --install nfs-client-provisioner c7n/nfs-client-provisioner \  --set rbac.create=true \  --set persistence.enabled=true \  --set storageClass.name=nfs-provisioner \  --set persistence.nfsServer=10.16.34.37 \  --set persistence.nfsPath=/data/nfs \  --version 0.1.1 \  --namespace kube-system把存储类配置成默认存储类kubectl patch storageclass nfs-provisioner   -p '{"metadata": {"annotations":{"storageclass.beta.kubernetes.io/is-default-class":"true"}}}'

装置其它依赖包

yum install -y jq unzip uuid

装置蓝鲸7.1

整个过程都是依据社区文档 https://bk.tencent.com/docs/document/7.0/253/69744
这里次要记录我在这个过程中碰到的问题,具体的装置过程以社区文档为准

装置根底套餐

#下载蓝鲸helmfile包及公共证书curl -sSf https://bkopen-1252002024.file.myqcloud.com/ce7/7.1-beta/bkdl-7.1-beta.sh | bash -s -- -ur latest base cert#会把文件下载到 /root/bkce7.1-install/blueking/ 目录下#执行一键装置脚本,装置根底后盾BK_DOMAIN=bkce7.jinrui.orgcd ~/bkce7.1-install/blueking/  patt_domain='[a-z0-9]([-a-z0-9]*[a-z0-9])(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*'if grep -P "$patt_domain" <<< "$BK_DOMAIN"; then  scripts/setup_bkce7.sh -i base --domain "$BK_DOMAIN"else  echo "BK_DOMAIN($BK_DOMAIN) does not match pattern($patt_domain)."fi

装置到bk-paas、bk-repo,碰到如下的报错,无奈解决

屡次折腾,还是报一样的错,然而pod无显著的谬误日志,并且pod始终在重启。
通过各种重试,发现这个是pod资源有余导致的,调整pod的资源限额,启动失常,调整bk-repo的资源配额的过程如下
vi /root/bkce7.1-install/blueking/environments/default/bkrepo-values.yaml.gotmpl
上面的我应用的文件的残缺内容,其中 “# 新加 开始 ======= # 新加 完结 =======”就是我自行减少的,"# 批改 开始 ======= # 批改 完结 =======" 就是我自行批改过的。

global:  imageRegistry: {{ .Values.imageRegistry }}## bkDomainScheme配置bkDomainScheme: {{ .Values.bkDomainScheme }}# metrics采集配置serviceMonitor:  enabled: {{ .Values.serviceMonitor.enabled }}## 日志采集配置bkLogConfig:  enabled: {{ .Values.bkLogConfig.enabled }}  service:    dataId: 1110007  gatewayAccess:    dataId: 1110008  gatewayError:    dataId: 1110009persistence:  size: {{ .Values.bkrepo.size }}mongodb:  enabled: falseexternalMongodb:  uri: mongodb://{{ .Values.bkrepo.externalMongodb.username }}:{{ .Values.bkrepo.externalMongodb.password }}@{{ .Values.mongodb.host_port }}/{{ .Values.bkrepo.externalMongodb.database }}?replicaSet={{ .Values.mongodb.rsName }}nginx-ingress-controller:  enabled: falsecommon:  username: {{ .Values.bkrepo.common.username }}  password: {{ .Values.bkrepo.common.password }}docker:  enabled: true## 初始化配置init:  # 初始化bk-ci(蓝盾)导航  entrance:    enabled: false    bkCiProjectInnerUrl:  ## BCS(容器治理平台) repo配置  bcs:    enabled: true    publicImageUrl: https://hub.bktencent.com/blueking    publicChartUrl: https://hub.bktencent.com/chartrepo/blueking## 网关配置gateway:  ## bkrepo 地址  host: bkrepo.{{ .Values.domain.bkDomain }}  ## bkrepo docker仓库地址  dockerHost: docker.{{ .Values.domain.bkDomain }}  ## bkrepo helm仓库地址  helmHost: helm.{{ .Values.domain.bkDomain }}  ## dns服务器地址,用于配置nginx resolver。local=on为openrestry语法,取本机/etc/resolv.conf配置  dnsServer: local=on  ## 网关拜访微服务认证信息  authorization: "Platform MThiNjFjOWMtOTAxYi00ZWEzLTg5YzMtMWY3NGJlOTQ0YjY2OlVzOFpHRFhQcWs4NmN3TXVrWUFCUXFDWkxBa00zSw=="  ## 部署模式,standalone: 独立模式,ci: 与ci搭配模式, saas模式:部署在蓝鲸paas上  deployMode: saas  ## 登陆校验模式,ticket or token or ci  authMode: token  ## ci模式必填,蓝鲸paas域名  bkPaasUrl: {{ .Values.bkDomainScheme }}://{{ .Values.domain.bkMainSiteDomain }}  ## ci模式必填,登录地址  bkLoginUrl: {{ .Values.bkDomainScheme }}://{{ .Values.domain.bkMainSiteDomain }}/login  ## ci模式必填,ssm ip  ssmIP0: bkssm-web.{{ .Values.namespace }}.svc.cluster.local  ## ci模式必填,ssm host  ssmHost: bkssm-web.{{ .Values.namespace }}.svc.cluster.local  ## ci模式必填,ssm port  ssmPort: 80  ## ci模式必填,ssm token url  ssmTokenUrl: /api/v1/auth/access-tokens  ## ci模式必填,ssm env  ssmEnv: prod  ## ci模式必填,app code  appCode: bk_repo  ## ci模式必填,app token  appToken: {{ .Values.appSecret.bk_repo }}  ## bkrepo gateway service配置  service:    type: NodePort    nodePort: 30025  resources:    requests:      cpu: 100m      memory: 256Mi    limits:# 批改  开始 =======       cpu: 1000m      memory: 3000Mi# 批改 完结 =======auth:  ## bcs account配置  bcs:    accessKey: "bk_bcs_app"    secretKey: "{{ .Values.appSecret.bk_bcs_app }}"  config:    ## 指定realm类型,反对local/devops    realm: local    ## realm 指定为devops配置    devops:      # bkci accountId in bkrepo      appId: bkdevops      # bkci appId set      appIdSet: bkdevops,bkrepo,codecc,bcs      # bcs appId      bcsAppId: bcs      # bkrepo appId      bkrepoAppId: bkrepo      # bkci auth server url      ciAuthServer: {{ .Values.bkDomainScheme }}://devops.{{ .Values.domain.bkDomain }}      # bkci auth token      ciAuthToken: {{ .Values.appSecret.bk_ci }}helm:  enabled: true  resources:    requests:      cpu: 100m      memory: 256Mi    limits:# 批改  开始 =======      cpu: 1000m      memory: 3000Mi# 批改 完结 =======npm:  enabled: true  resources:    requests:      cpu: 100m      memory: 256Mi    limits:# 批改  开始 =======      cpu: 1000m      memory: 3000Mi# 批改 完结 =======pypi:  enabled: true  resources:    requests:      cpu: 100m      memory: 256Mi    limits:# 批改  开始 =======      cpu: 1000m      memory: 3000Mi#批改 完结 =======# 新加  开始 =======docker:  enabled: true  resources:    requests:      cpu: 200m      memory: 512Mi    limits:      cpu: 1000m      memory: 3000Migeneric:  enabled: true  resources:    requests:      cpu: 200m      memory: 512Mi    limits:      cpu: 1000m      memory: 3000Mfs-server:  enabled: true  resources:    requests:      cpu: 200m      memory: 512Mi    limits:      cpu: 1000m      memory: 3000Mjob:  enabled: true  resources:    requests:      cpu: 200m      memory: 512Mi    limits:      cpu: 1000m      memory: 3000Mopdata:  enabled: true  resources:    requests:      cpu: 200m      memory: 512Mi    limits:      cpu: 1000m      memory: 3000Mreplication:  enabled: true  resources:    requests:      cpu: 200m      memory: 512Mi    limits:      cpu: 1000m      memory: 3000M# 新加  完结 =======repository:  config:    # 软删除后,清理并开释磁盘空间的间隔时间    deletedNodeReserveDays: 0# 新加  开始 =======  resources:    requests:      cpu: 200m      memory: 512Mi    limits:      cpu: 1500m      memory: 3000M# 新加  完结 =======

最初装置胜利

装置胜利后,电脑配置hosts(10.16.34.37 bkce7.jinrui.org),浏览器拜访,能够看到如下的成果

装置saas

curl -sSf https://bkopen-1252002024.file.myqcloud.com/ce7/7.1-beta/bkdl-7.1-beta.sh | bash -s -- -ur latest saas部署节点治理:scripts/setup_bkce7.sh -i nodeman部署流程服务:scripts/setup_bkce7.sh -i itsm部署规范运维:scripts/setup_bkce7.sh -i sops

我在这个过程中,按社区文档的操作可失常实现装置,没有碰到问题。

装置容器平台

https://bk.tencent.com/docs/document/7.0/253/69746

cd ~/bkce7.1-install/bluekinghelmfile -f 03-bcs.yaml.gotmpl sync# 在admin桌面增加利用,也能够登录后自行添加。scripts/add_user_desktop_app.sh -u "admin" -a "bk_bcs"# 设为默认利用。scripts/set_desktop_default_app.sh -a "bk_bcs"

在这个过程中,碰到的问题是bcs-services-stack-app这个pod无奈失常进入Running状态,经排查是因为内存限额过小导致,间接批改bcs-services-stack-app这个deployment中的内存限额,留神:该deployment中的pod有多个容器,我这里是每个容器都进行了批改。

kubectl edit deployment bcs-services-stack-app -n bcs-system我这里是对这个deployment的中的所有容器的resources.limits都批改成如下的:        resources:          limits:            cpu: "4"            memory: 6Gi          requests:

装置监控日志

https://bk.tencent.com/docs/document/7.0/253/69742
我在这个过程中,按社区文档的操作可失常实现装置,没有碰到问题。

总体感触

相比之前装置7.1之前的版本,装置7.1版本的过程顺畅很多,社区应该是花了很大的人力物力去欠缺了脚本