單臺(tái)機(jī)器安裝體驗(yàn)藍(lán)鯨7.1
>?本文來自騰訊藍(lán)鯨智云社區(qū)用戶:donkey
使用一臺(tái)服務(wù)器,既是k8s master節(jié)點(diǎn)又是node節(jié)點(diǎn)。
基礎(chǔ)環(huán)境信息
系統(tǒng):CentOS 7.9
CPU/內(nèi)存: 64C/128G
機(jī)器信息
k8s環(huán)境準(zhǔn)備
安裝docker ,docker版本要求:19.03 及更高
yum -y install wget
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum install epel-release -y
yum install container-selinux -y
wget -O /etc/yum.repos.d/docker-ce.repo ?https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum -y install docker-ce-20.10.20-3.el7
安裝k8s
這里使用github上開源的一個(gè)ansible腳本來安裝k8s
# 安裝 git 命令行
yum install git -y
# 克隆本項(xiàng)目代碼
git clone https://github.com/choerodon/kubeadm-ha.git
# 進(jìn)入項(xiàng)目目錄
cd kubeadm-ha
# 安裝 ansible 環(huán)境
sudo ./ansible/install.sh
配置好 ansible inventory 文件,然后執(zhí)行
ansible-playbook -i inventory.ini 90-init-cluster.yml
注:
1、更詳細(xì)的說明,可以查看https://github.com/choerodon/kubeadm-ha.git
2、這個(gè)腳本的使用最主要的是配置inventory文件,以下我的inventory文件的內(nèi)容
[all]
10.16.34.37 ansible_port=22 ansible_user="root" ansible_ssh_pass="機(jī)器密碼"
[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=false
kube_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,并配置相應(yīng)的存儲(chǔ)類
mkdir /data/nfs
yum install -y nfs-utils
echo '/data/nfs 10.16.34.0/24(rw,sync,insecure,no_subtree_check,no_root_squash)' > /etc/exports
sudo systemctl enable nfs-server
sudo systemctl start nfs-server
helm repo add c7n https://openchart.choerodon.com.cn/choerodon/c7n/
helm repo update
helm 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
把存儲(chǔ)類配置成默認(rèn)存儲(chǔ)類
kubectl patch storageclass nfs-provisioner ? -p '{"metadata": {"annotations":{"storageclass.beta.kubernetes.io/is-default-class":"true"}}}'
安裝其它依賴包
yum install -y jq unzip uuid
安裝藍(lán)鯨7.1
整個(gè)過程都是根據(jù)社區(qū)文檔 https://bk.tencent.com/docs/document/7.0/253/69744
這里主要記錄我在這個(gè)過程中碰到的問題,詳細(xì)的安裝過程以社區(qū)文檔為準(zhǔn)
安裝基礎(chǔ)套餐
#下載藍(lán)鯨helmfile包及公共證書
curl -sSf https://bkopen-1252002024.file.myqcloud.com/ce7/7.1-beta/bkdl-7.1-beta.sh | bash -s -- -ur latest base cert
#會(huì)把文件下載到 /root/bkce7.1-install/blueking/ 目錄下
#執(zhí)行一鍵安裝腳本,安裝基礎(chǔ)后臺(tái)
BK_DOMAIN=bkce7.jinrui.org
cd ~/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,碰到如下的報(bào)錯(cuò),無法解決

多次折騰,還是報(bào)一樣的錯(cuò),但是pod無明顯的錯(cuò)誤日志,并且pod一直在重啟。
經(jīng)過各種重試,發(fā)現(xiàn)這個(gè)是pod資源不足導(dǎo)致的,調(diào)整pod的資源限額,啟動(dòng)正常,調(diào)整bk-repo的資源配額的過程如下
vi /root/bkce7.1-install/blueking/environments/default/bkrepo-values.yaml.gotmpl
下面的我使用的文件的完整內(nèi)容,其中 “# 新加 開始 ======= # 新加 結(jié)束 =======”就是我自行增加的,"# 修改 開始 ======= # 修改 結(jié)束 =======" 就是我自行修改過的。
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: 1110009
persistence:
?size: {{ .Values.bkrepo.size }}
mongodb:
?enabled: false
externalMongodb:
?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: false
common:
?username: {{ .Values.bkrepo.common.username }}
?password: {{ .Values.bkrepo.common.password }}
docker:
?enabled: true
## 初始化配置
init:
?# 初始化bk-ci(藍(lán)盾)導(dǎo)航
?entrance:
? ?enabled: false
? ?bkCiProjectInnerUrl:
?## BCS(容器管理平臺(tái)) repo配置
?bcs:
? ?enabled: true
? ?publicImageUrl: https://hub.bktencent.com/blueking
? ?publicChartUrl: https://hub.bktencent.com/chartrepo/blueking
## 網(wǎng)關(guān)配置
gateway:
?## bkrepo 地址
?host: bkrepo.{{ .Values.domain.bkDomain }}
?## bkrepo docker倉庫地址
?dockerHost: docker.{{ .Values.domain.bkDomain }}
?## bkrepo helm倉庫地址
?helmHost: helm.{{ .Values.domain.bkDomain }}
?## dns服務(wù)器地址,用于配置nginx resolver。local=on為openrestry語法,取本機(jī)/etc/resolv.conf配置
?dnsServer: local=on
?## 網(wǎng)關(guān)訪問微服務(wù)認(rèn)證信息
?authorization: "Platform MThiNjFjOWMtOTAxYi00ZWEzLTg5YzMtMWY3NGJlOTQ0YjY2OlVzOFpHRFhQcWs4NmN3TXVrWUFCUXFDWkxBa00zSw=="
?## 部署模式,standalone: 獨(dú)立模式,ci: 與ci搭配模式, saas模式:部署在藍(lán)鯨paas上
?deployMode: saas
?## 登陸校驗(yàn)?zāi)J?,ticket or token or ci
?authMode: token
?## ci模式必填,藍(lán)鯨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
# 修改 結(jié)束 =======
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
# 修改 結(jié)束 =======
npm:
?enabled: true
?resources:
? ?requests:
? ? ?cpu: 100m
? ? ?memory: 256Mi
? ?limits:
# 修改 ?開始 =======
? ? ?cpu: 1000m
? ? ?memory: 3000Mi
# 修改 結(jié)束 =======
pypi:
?enabled: true
?resources:
? ?requests:
? ? ?cpu: 100m
? ? ?memory: 256Mi
? ?limits:
# 修改 ?開始 =======
? ? ?cpu: 1000m
? ? ?memory: 3000Mi
#修改 結(jié)束 =======
# 新加 ?開始 =======
docker:
?enabled: true
?resources:
? ?requests:
? ? ?cpu: 200m
? ? ?memory: 512Mi
? ?limits:
? ? ?cpu: 1000m
? ? ?memory: 3000Mi
generic:
?enabled: true
?resources:
? ?requests:
? ? ?cpu: 200m
? ? ?memory: 512Mi
? ?limits:
? ? ?cpu: 1000m
? ? ?memory: 3000M
fs-server:
?enabled: true
?resources:
? ?requests:
? ? ?cpu: 200m
? ? ?memory: 512Mi
? ?limits:
? ? ?cpu: 1000m
? ? ?memory: 3000M
job:
?enabled: true
?resources:
? ?requests:
? ? ?cpu: 200m
? ? ?memory: 512Mi
? ?limits:
? ? ?cpu: 1000m
? ? ?memory: 3000M
opdata:
?enabled: true
?resources:
? ?requests:
? ? ?cpu: 200m
? ? ?memory: 512Mi
? ?limits:
? ? ?cpu: 1000m
? ? ?memory: 3000M
replication:
?enabled: true
?resources:
? ?requests:
? ? ?cpu: 200m
? ? ?memory: 512Mi
? ?limits:
? ? ?cpu: 1000m
? ? ?memory: 3000M
# 新加 ?結(jié)束 =======
repository:
?config:
? ?# 軟刪除后,清理并釋放磁盤空間的間隔時(shí)間
? ?deletedNodeReserveDays: 0
# 新加 ?開始 =======
?resources:
? ?requests:
? ? ?cpu: 200m
? ? ?memory: 512Mi
? ?limits:
? ? ?cpu: 1500m
? ? ?memory: 3000M
# 新加 ?結(jié)束 =======
最后安裝成功

安裝成功后,電腦配置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
部署節(jié)點(diǎn)管理:
scripts/setup_bkce7.sh -i nodeman
部署流程服務(wù):
scripts/setup_bkce7.sh -i itsm
部署標(biāo)準(zhǔn)運(yùn)維:
scripts/setup_bkce7.sh -i sops
我在這個(gè)過程中,按社區(qū)文檔的操作可正常完成安裝,沒有碰到問題。
安裝容器平臺(tái)
https://bk.tencent.com/docs/document/7.0/253/69746
cd ~/bkce7.1-install/blueking
helmfile -f 03-bcs.yaml.gotmpl sync
# 在admin桌面添加應(yīng)用,也可以登錄后自行添加。
scripts/add_user_desktop_app.sh -u "admin" -a "bk_bcs"
# 設(shè)為默認(rèn)應(yīng)用。
scripts/set_desktop_default_app.sh -a "bk_bcs"
在這個(gè)過程中,碰到的問題是bcs-services-stack-app這個(gè)pod無法正常進(jìn)入Running狀態(tài),經(jīng)排查是因?yàn)閮?nèi)存限額過小導(dǎo)致,直接修改bcs-services-stack-app這個(gè)deployment中的內(nèi)存限額,注意:該deployment中的pod有多個(gè)容器,我這里是每個(gè)容器都進(jìn)行了修改。
kubectl edit deployment bcs-services-stack-app -n bcs-system
我這里是對(duì)這個(gè)deployment的中的所有容器的resources.limits都修改成如下的:
? ? ? ?resources:
? ? ? ? ?limits:
? ? ? ? ? ?cpu: "4"
? ? ? ? ? ?memory: 6Gi
? ? ? ? ?requests:

安裝監(jiān)控日志
https://bk.tencent.com/docs/document/7.0/253/69742
我在這個(gè)過程中,按社區(qū)文檔的操作可正常完成安裝,沒有碰到問題。


總體感受
相比之前安裝7.1之前的版本,安裝7.1版本的過程順暢很多,社區(qū)應(yīng)該是花了很大的人力物力去完善了腳本