基础系统配置
- 2c/4g内存/40g硬盘(该配置仅测试用)
- 最小化安装Ubuntu 16.04 server或者CentOS 7 Minimal
- 配置基础网络、更新源、SSH登录等
环境规划
ip | 主机名 | 角色 |
---|---|---|
192.168.199.113 | yfm13 | master1 ,etcd |
192.168.199.114 | yfm14 | master2 , |
192.168.199.115 | yfm15 | node1 , etcd |
192.168.199.116 | yfm16 | node2 , etcd |
在每个节点安装依赖工具
yum update
# 安装python
yum install python -y
在部署节点安装ansible及准备ssh免密登陆
3.1 安装ansible (也可以使用容器化运行kubeasz,已经预装好ansible)
# 注意pip 21.0以后不再支持python2和python3.5,需要如下安装
# To install pip for Python 2.7 install it from https://bootstrap.pypa.io/2.7/ :
curl -O https://bootstrap.pypa.io/2.7/get-pip.py
python get-pip.py
python -m pip install --upgrade "pip < 21.0"
# pip安装ansible(国内如果安装太慢可以直接用pip阿里云加速)
pip install ansible -i https://mirrors.aliyun.com/pypi/simple/
3.2 在ansible控制端配置免密码登录
# 更安全 Ed25519 算法
ssh-keygen -t ed25519 -N '' -f ~/.ssh/id_ed25519
# 或者传统 RSA 算法
ssh-keygen -t rsa -b 2048 -N '' -f ~/.ssh/id_rsa
ssh-copy-id $IPs #$IPs为所有节点地址包括自身,按照提示输入yes 和root密码
在部署节点编排k8s安装
4.1 下载项目源码、二进制及离线镜像
# 下载工具脚本ezdown,举例使用kubeasz版本3.0.0
export release=3.0.0
curl -C- -fLO --retry 3 https://github.com/easzlab/kubeasz/releases/download/${release}/ezdown
chmod +x ./ezdown
# 使用工具脚本下载
./ezdown -D
上述脚本运行成功后,所有文件(kubeasz代码、二进制、离线镜像)均已整理好放入目录/etc/kubeasz
4.2 创建集群配置实例
ezctl new k8s-01
2021-01-19 10:48:23 DEBUG generate custom cluster files in /etc/kubeasz/clusters/k8s-01
2021-01-19 10:48:23 DEBUG set version of common plugins
2021-01-19 10:48:23 DEBUG cluster k8s-01: files successfully created.
2021-01-19 10:48:23 INFO next steps 1: to config '/etc/kubeasz/clusters/k8s-01/hosts'
2021-01-19 10:48:23 INFO next steps 2: to config '/etc/kubeasz/clusters/k8s-01/config.yml'
然后根据提示配置’/etc/kubeasz/clusters/k8s-01/hosts’ 和 ‘/etc/kubeasz/clusters/k8s-01/config.yml’:根据前面节点规划修改hosts 文件和其他集群层面的主要配置选项;其他集群组件等配置项可以在config.yml 文件中修改。
4.3 开始安装 如果你对集群安装流程不熟悉,请阅读项目首页 安装步骤 讲解后分步安装,并对 每步都进行验证
# 一键安装
ezctl setup k8s-01 all
# 或者分步安装,具体使用 ezctl help setup 查看分步安装帮助信息
# ezctl setup k8s-01 01
# ezctl setup k8s-01 02
# ezctl setup k8s-01 03
# ezctl setup k8s-01 04
...
验证结果
访问dashboard
https://192.168.199.113:31150/
令牌登录(admin)
[root@yfm13 kubeasz]# kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep admin-user | awk '{print $1}')
Name: admin-user-token-b89x8
Namespace: kube-system
Labels: <none>
Annotations: kubernetes.io/service-account.name: admin-user
kubernetes.io/service-account.uid: fc926a59-5c82-4246-8e8d-23a65aff0211
Type: kubernetes.io/service-account-token
Data
====
namespace: 11 bytes
token: eyJhbGciOiJSUzI1NiIsImtpZCI6Inpyd2xlSGRVVEJUdEk4RkZUc2ZTNmNMbVh1OVBQLVVlMnh0bXhiRzVvTmsifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJhZG1pbi11c2VyLXRva2VuLWI4OXg4Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImFkbWluLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiJmYzkyNmE1OS01YzgyLTQyNDYtOGU4ZC0yM2E2NWFmZjAyMTEiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06YWRtaW4tdXNlciJ9.HnjEZxhKhFFHVdzdwMf4VneZf1kuVC0IC9dkKwxNaStb3-OEJ586ayNuLXCO49TiD4oYdeCwxw6qw4qe0QFpQJgGUorAadFHueAP5AfZxgFKRovAyqDpn7SXcAb3It4Uy83NBGEDhno1-whIbgd3gNW0yQcA3Autwhxl2t8BybFVOZ8ctgEO89gb5rNHuBhe1SHh0xSap1DEtEi04emC_n_MxqiOHURNnf_vsNs3WqM3Iv9hjRqLoNRcaV-wO08I0zUMNjYg1sVNtAZyY9y4Usb_jc0CqKA0f0P9G4Zfu0zirf3MVqQSFFny0ZETzK3Chq7lmPpQXJ8BoTYQyqmEVg
ca.crt: 1350 bytes
复制下面输出的admin token 字段到输入框
令牌登录(只读)
[root@yfm13 kubeasz]# kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep read-user | awk '{print $1}')
Name: dashboard-read-user-token-2tjmz
Namespace: kube-system
Labels: <none>
Annotations: kubernetes.io/service-account.name: dashboard-read-user
kubernetes.io/service-account.uid: 9f81542f-d1ac-4403-8d00-77d1002dbb4a
Type: kubernetes.io/service-account-token
Data
====
ca.crt: 1350 bytes
namespace: 11 bytes
token: eyJhbGciOiJSUzI1NiIsImtpZCI6Inpyd2xlSGRVVEJUdEk4RkZUc2ZTNmNMbVh1OVBQLVVlMnh0bXhiRzVvTmsifQ.eyJpc3MiOiJrdWJlcm5ldGVzL3NlcnZpY2VhY2NvdW50Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9uYW1lc3BhY2UiOiJrdWJlLXN5c3RlbSIsImt1YmVybmV0ZXMuaW8vc2VydmljZWFjY291bnQvc2VjcmV0Lm5hbWUiOiJkYXNoYm9hcmQtcmVhZC11c2VyLXRva2VuLTJ0am16Iiwia3ViZXJuZXRlcy5pby9zZXJ2aWNlYWNjb3VudC9zZXJ2aWNlLWFjY291bnQubmFtZSI6ImRhc2hib2FyZC1yZWFkLXVzZXIiLCJrdWJlcm5ldGVzLmlvL3NlcnZpY2VhY2NvdW50L3NlcnZpY2UtYWNjb3VudC51aWQiOiI5ZjgxNTQyZi1kMWFjLTQ0MDMtOGQwMC03N2QxMDAyZGJiNGEiLCJzdWIiOiJzeXN0ZW06c2VydmljZWFjY291bnQ6a3ViZS1zeXN0ZW06ZGFzaGJvYXJkLXJlYWQtdXNlciJ9.ZHiM1J5vrx7RRMZ2aKPRUhlk_HbKbtekjxaj8SFfzFB1oW9lqa8XwOmrRYT2UFIos9P4y7ZPlsbTHjmff_QE31mTbdjNxCxRgilq5yHk8clK7iFjQhnffKU7KwibsQo0MFj77jfUu2MYJJlkME5ACO9TaD308liZkc6uZmm_SY_4m0T7RS586BlLk_6lcSatbICjqgxy1JSUMRwNb5K3c-xMCu_C8uc52RWrsEDUdNeKb3hWEB7lr7IJgvdYH7sNaKxHwU61DoaPUAtVAIrxIBLwY4e70ZJEAn9-FJ2vS6KQ6xjZC1eAqQHe29GcEP4bFp6pc85zO4JisSwhXHGSpw
复制下面输出的read token 字段到输入框
Kubeconfig登录(admin)
kubeconfig文件默认位置:/root/.kube/config,该文件中默认没有token字段,使用Kubeconfig方式登录,还需要将admin token追加到该文件中即可
Kubeconfig登录(只读)
kubeconfig文件默认位置:/root/.kube/config,该文件中默认没有token字段,使用Kubeconfig方式登录,还需要将read token追加到该文件中即可
Prometheus
kubeasz 集成安装
1.修改 clusters/k8s-01/config.yml 中配置项 prom_install: “yes”
2.安装 ezctl setup k8s-01 07
- 访问prometheus的web界面:http://$NodeIP:30901
- 访问alertmanager的web界面:http://$NodeIP:30902
- 访问grafana的web界面:http://$NodeIP:30903 (默认用户密码 admin:Admin1234!)
参考: