mirror of https://github.com/easzlab/kubeasz.git
docs: minor update
parent
fc39f77ab9
commit
2d19de3a18
|
@ -6,7 +6,7 @@
|
|||
|
||||
## 安装配置介绍
|
||||
|
||||
项目中选定一个节点(`deploy` )作为集群内部其他节点的时间同步源,而 deploy节点本身从公网源同步;当然如果整个集群都无法访问公网,那么请手动校准deploy 节点的时间后,仍旧可以作为内部集群的时间源服务器。
|
||||
项目中选定一个节点(`groups.chrony[0]`)作为集群内部其他节点的时间同步源,而这个节点本身从公网源同步;当然如果整个集群都无法访问公网,那么请手动校准这个节点的时间后,仍旧可以作为内部集群的时间源服务器。
|
||||
|
||||
- 配置 chrony server, 在`/etc/chrony.conf` 配置以下几项,其他项默认值即可
|
||||
|
||||
|
@ -24,16 +24,16 @@ local stratum 10
|
|||
- 配置 chrony client
|
||||
|
||||
``` bash
|
||||
# 1. 清除所有其他时间源,只配置一个本地 deploy节点作为源
|
||||
server {{ groups.deploy[0] }} iburst
|
||||
# 1. 清除所有其他时间源,只配置一个本地`groups.chrony[0]`节点作为源
|
||||
server {{ groups.chrony[0] }} iburst
|
||||
|
||||
# 2. 其他所有项可以默认配置
|
||||
```
|
||||
|
||||
## `kubeasz` 集成安装
|
||||
|
||||
- 修改 ansible hosts 文件,在 `deploy` 节点配置 `NTP_ENABLED=yes` (默认: no)
|
||||
- [可选] 修改 roles/chrony/var/main.yml 中的变量定义,关于文件 roles/chrony/var/main.yml 的由来请看[这里](../setup/config_guide.md)
|
||||
- 修改 ansible hosts 文件,在 `chrony`组中加入选中的节点ip
|
||||
- [可选] 修改 roles/chrony/defaults/main.yml 中的变量定义
|
||||
|
||||
对于新集群或者新节点,`chrony` 的安装配置已经集成到脚本中;对于已运行中的集群请执行如下命令进行安装:
|
||||
|
||||
|
@ -41,7 +41,7 @@ server {{ groups.deploy[0] }} iburst
|
|||
|
||||
## 验证配置
|
||||
|
||||
- 在 chrony server (deploy 节点)检查时间源信息,默认配置为`ntp1.aliyun.com`的地址:
|
||||
- 在 chrony server 检查时间源信息,默认配置为`ntp1.aliyun.com`的地址:
|
||||
|
||||
```
|
||||
$ chronyc sources -v
|
||||
|
@ -64,7 +64,7 @@ MS Name/IP address Stratum Poll Reach LastRx Last sample
|
|||
^- 119.28.183.184 2 7 377 33 -130us[ -130us] +/- 47ms
|
||||
```
|
||||
|
||||
- 在 chrony server (deploy 节点)检查时间源同步状态
|
||||
- 在 chrony server 检查时间源同步状态
|
||||
|
||||
```
|
||||
chronyc sourcestats -v
|
||||
|
@ -87,7 +87,7 @@ static-5-103-139-163.ip.f 20 13 42m -2.472 10.168 +3615us 6732us
|
|||
119.28.183.184 16 9 19m +10.378 25.190 +3469us 6803us
|
||||
```
|
||||
|
||||
- 在 chrony client 检查,可以看到时间源只有一个(deploy 节点地址)
|
||||
- 在 chrony client 检查,可以看到时间源只有一个(groups.chrony[0] 节点地址)
|
||||
|
||||
```
|
||||
$ chronyc sources
|
||||
|
|
|
@ -11,15 +11,15 @@ Habor是由VMWare中国团队开源的容器镜像仓库。事实上,Habor是
|
|||
|
||||
### 安装步骤
|
||||
|
||||
1. 在deploy节点下载最新的 [docker-compose](https://github.com/docker/compose/releases) 二进制文件,改名后把它放到项目 `/etc/ansible/bin`目录下(百度云的二进制文件中已包含)
|
||||
1. 在ansible控制端下载最新的 [docker-compose](https://github.com/docker/compose/releases) 二进制文件,改名后把它放到项目 `/etc/ansible/bin`目录下(百度云的二进制文件中已包含)
|
||||
|
||||
``` bash
|
||||
wget https://github.com/docker/compose/releases/download/1.18.0/docker-compose-Linux-x86_64
|
||||
mv docker-compose-Linux-x86_64 /etc/ansible/bin/docker-compose
|
||||
```
|
||||
2. 在deploy节点下载最新的 [harbor](https://github.com/vmware/harbor/releases) 离线安装包,把它放到项目 `/etc/ansible/down` 目录下,也可以从分享的百度云盘下载
|
||||
2. 在ansible控制端下载最新的 [harbor](https://github.com/vmware/harbor/releases) 离线安装包,把它放到项目 `/etc/ansible/down` 目录下,也可以从分享的百度云盘下载
|
||||
|
||||
3. 在deploy节点编辑/etc/ansible/hosts文件,可以参考 `example`目录下的模板,修改部分举例如下
|
||||
3. 在ansible控制端编辑/etc/ansible/hosts文件,可以参考 `example`目录下的模板,修改部分举例如下
|
||||
|
||||
``` bash
|
||||
# 参数 NEW_INSTALL=(yes/no):yes表示新建 harbor,并配置k8s节点的docker可以使用harbor仓库
|
||||
|
@ -29,7 +29,7 @@ mv docker-compose-Linux-x86_64 /etc/ansible/bin/docker-compose
|
|||
192.168.1.8 HARBOR_DOMAIN="harbor.yourdomain.com" NEW_INSTALL=yes
|
||||
```
|
||||
|
||||
4. 在deploy节点执行 `ansible-playbook /etc/ansible/11.harbor.yml`,完成harbor安装和docker 客户端配置
|
||||
4. 在ansible控制端执行 `ansible-playbook /etc/ansible/11.harbor.yml`,完成harbor安装和docker 客户端配置
|
||||
|
||||
- 安装验证
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ $ ansible-playbook /etc/ansible/roles/helm/helm.yml
|
|||
|
||||
简单介绍下`/roles/helm/tasks/main.yml`中的步骤
|
||||
|
||||
- 1-下载最新release的helm客户端到/etc/ansible/bin目录下,再由它自动推送到deploy的{{ bin_dir }}目录下
|
||||
- 1-下载最新release的helm客户端到/etc/ansible/bin目录下
|
||||
- 2-由集群CA签发helm客户端证书和私钥
|
||||
- 3-由集群CA签发tiller服务端证书和私钥
|
||||
- 4-创建tiller专用的RBAC配置,只允许helm在指定的namespace查看和安装应用
|
||||
|
|
|
@ -8,7 +8,7 @@ DNS 是 k8s 集群首先需要部署的,集群中的其他 pods 使用它提
|
|||
|
||||
+ 安装
|
||||
|
||||
目前 kubeasz 已经自动集成安装 dns 组件,配置模板位于`roles/cluster-addon/templates/`目录,安装文件位于 deploy 节点`/opt/kube/kube-system/`目录
|
||||
目前 kubeasz 已经自动集成安装 dns 组件,配置模板位于`roles/cluster-addon/templates/`目录
|
||||
|
||||
+ 集群 pod默认继承 node的dns 解析,修改 kubelet服务启动参数 --resolv-conf="",可以更改这个特性,详见 kubelet 启动参数
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ kubelet默认启动参数`--anonymous-auth=true`风险非常大,黑客可以
|
|||
|
||||
## 漏洞的修复
|
||||
|
||||
最新代码已经修复,参考[官方文档说明](https://kubernetes.io/docs/admin/kubelet-authentication-authorization/),已有集群可以登陆`deploy`节点操作如下:
|
||||
最新代码已经修复,参考[官方文档说明](https://kubernetes.io/docs/admin/kubelet-authentication-authorization/),已有集群可以登陆ansible控制端操作如下:
|
||||
``` bash
|
||||
$ cd /etc/ansible
|
||||
$ git pull origin master
|
||||
|
|
|
@ -45,7 +45,7 @@ Kubernetes master is running at https://192.168.1.39:8443
|
|||
|
||||
## 变更操作
|
||||
|
||||
- `ansible playbook`可以使用tags来控制只允许部分任务执行,这里为简化操作没有细化,在deploy节点具体操作如下:
|
||||
- `ansible playbook`可以使用tags来控制只允许部分任务执行,这里为简化操作没有细化,在ansible控制端具体操作如下:
|
||||
|
||||
``` bash
|
||||
# 1.修改/etc/ansible/hosts 配置项MASTER_IP,KUBE_APISERVER
|
||||
|
|
|
@ -22,14 +22,14 @@ $ ETCDCTL_API=3 etcdctl --write-out=table snapshot status backup.db
|
|||
快速升级是指只升级`k8s`版本,比较常见如`Bug修复` `重要特性发布`时使用。
|
||||
|
||||
- 首先去官网release下载待升级的k8s版本,例如`https://dl.k8s.io/v1.11.5/kubernetes-server-linux-amd64.tar.gz`
|
||||
- 解压下载的tar.gz文件,找到如下`kube*`开头的二进制,复制替换deploy节点目录`/etc/ansible/bin`对应文件
|
||||
- 解压下载的tar.gz文件,找到如下`kube*`开头的二进制,复制替换ansible控制端目录`/etc/ansible/bin`对应文件
|
||||
- kube-apiserver
|
||||
- kube-controller-manager
|
||||
- kubectl
|
||||
- kubelet
|
||||
- kube-proxy
|
||||
- kube-scheduler
|
||||
- 在deploy节点执行`ansible-playbook -t upgrade_k8s 22.upgrade.yml`即可完成k8s 升级,不会中断业务应用
|
||||
- 在ansible控制端执行`ansible-playbook -t upgrade_k8s 22.upgrade.yml`即可完成k8s 升级,不会中断业务应用
|
||||
|
||||
如果使用 easzctl 命令行,可按如下执行:
|
||||
|
||||
|
|
|
@ -56,7 +56,7 @@ yum update
|
|||
yum install python -y
|
||||
```
|
||||
|
||||
### 3.在deploy节点安装及准备ansible
|
||||
### 3.在ansible控制端安装及准备ansible
|
||||
|
||||
- pip 安装 ansible(如果 Ubuntu pip报错,请看[附录](00-planning_and_overall_intro.md#Appendix))
|
||||
|
||||
|
@ -72,7 +72,7 @@ pip install pip --upgrade -i http://mirrors.aliyun.com/pypi/simple/ --trusted-ho
|
|||
pip install --no-cache-dir ansible -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
|
||||
```
|
||||
|
||||
- 在deploy节点配置免密码登陆
|
||||
- 在ansible控制端配置免密码登陆
|
||||
|
||||
``` bash
|
||||
# 更安全 Ed25519 算法
|
||||
|
@ -83,7 +83,7 @@ ssh-keygen -t rsa -b 2048 -N '' -f ~/.ssh/id_rsa
|
|||
ssh-copy-id $IPs #$IPs为所有节点地址包括自身,按照提示输入yes 和root密码
|
||||
```
|
||||
|
||||
### 4.在deploy节点编排k8s安装
|
||||
### 4.在ansible控制端编排k8s安装
|
||||
|
||||
- 4.1 下载项目源码
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ kubernetes 系统各组件需要使用 TLS 证书对通信进行加密,使用
|
|||
+ `kubectl` `calico` `kube-proxy` 只需要`client cert`,因此证书请求中 `hosts` 字段可以为空
|
||||
+ `kubelet` 需要标识自己服务的`server cert`,也需要`client cert`请求`apiserver`,也使用一个对等证书
|
||||
|
||||
整个集群要使用统一的CA 证书,只需要在 deploy 节点创建,然后分发给其他节点;为了保证安装的幂等性,如果已经存在CA 证书,就跳过创建CA 步骤
|
||||
整个集群要使用统一的CA 证书,只需要在ansible控制端创建,然后分发给其他节点;为了保证安装的幂等性,如果已经存在CA 证书,就跳过创建CA 步骤
|
||||
|
||||
#### 创建 CA 配置文件 [ca-config.json.j2](../../roles/deploy/templates/ca-config.json.j2)
|
||||
``` bash
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
```
|
||||
+----------------+ +-----------------+
|
||||
|easzctl 1.1.1.1 | |cluster-aio: |
|
||||
+--+---+---+-----+ |deploy 4.4.4.4 |
|
||||
+--+---+---+-----+ | |
|
||||
| | | |master 4.4.4.4 |
|
||||
| | +-------------------->+etcd 4.4.4.4 |
|
||||
| | |node 4.4.4.4 |
|
||||
|
@ -36,7 +36,7 @@
|
|||
v v
|
||||
+--+------------+ +---+----------------------------+
|
||||
| cluster-1: | | cluster-2: |
|
||||
| deploy 2.2.2.1| | deploy 3.3.3.1 |
|
||||
| | | |
|
||||
| master 2.2.2.1| | master 3.3.3.1/3.3.3.2 |
|
||||
| etcd 2.2.2.2| | etcd 3.3.3.1/3.3.3.2/3.3.3.3 |
|
||||
| node 2.2.2.3| | node 3.3.3.4/3.3.3.5/3.3.3.6 |
|
||||
|
|
Loading…
Reference in New Issue