add seperate flannel installation doc
parent
9dca67d94a
commit
df9ee4f8b1
|
@ -81,12 +81,13 @@
|
||||||
### 最佳实践
|
### 最佳实践
|
||||||
|
|
||||||
- [最佳实践概览](practice/index.md)
|
- [最佳实践概览](practice/index.md)
|
||||||
- [在CentOS上部署kubernetes集群](practice/install-kbernetes1.6-on-centos.md)
|
- [在CentOS上部署kubernetes集群](practice/install-kubernetes-on-centos.md)
|
||||||
- [创建TLS证书和秘钥](practice/create-tls-and-secret-key.md)
|
- [创建TLS证书和秘钥](practice/create-tls-and-secret-key.md)
|
||||||
- [创建kubeconfig文件](practice/create-kubeconfig.md)
|
- [创建kubeconfig文件](practice/create-kubeconfig.md)
|
||||||
- [创建高可用etcd集群](practice/etcd-cluster-installation.md)
|
- [创建高可用etcd集群](practice/etcd-cluster-installation.md)
|
||||||
- [安装kubectl命令行工具](practice/kubectl-installation.md)
|
- [安装kubectl命令行工具](practice/kubectl-installation.md)
|
||||||
- [部署master节点](practice/master-installation.md)
|
- [部署master节点](practice/master-installation.md)
|
||||||
|
- [安装flannel网络插件](practice/flannel-installation.md)
|
||||||
- [部署node节点](practice/node-installation.md)
|
- [部署node节点](practice/node-installation.md)
|
||||||
- [安装kubedns插件](practice/kubedns-addon-installation.md)
|
- [安装kubedns插件](practice/kubedns-addon-installation.md)
|
||||||
- [安装dashboard插件](practice/dashboard-addon-installation.md)
|
- [安装dashboard插件](practice/dashboard-addon-installation.md)
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Namespace
|
# Namespace
|
||||||
|
|
||||||
在一个Kubernetes集群中可以使用namespace创建多个“虚拟集群”,这些namespace之间可以完全隔离,也可以通过某种方式,让一个namespace中的service可以访问到其他的namespace中的服务,我们[在CentOS中部署kubernetes1.6集群](../practice/install-kbernetes1.6-on-centos.md)的时候就用到了好几个跨越namespace的服务,比如Traefik ingress和`kube-system`namespace下的service就可以为整个集群提供服务,这些都需要通过RBAC定义集群级别的角色来实现。
|
在一个Kubernetes集群中可以使用namespace创建多个“虚拟集群”,这些namespace之间可以完全隔离,也可以通过某种方式,让一个namespace中的service可以访问到其他的namespace中的服务,我们[在CentOS中部署kubernetes1.6集群](../practice/install-kubernetes-on-centos.md)的时候就用到了好几个跨越namespace的服务,比如Traefik ingress和`kube-system`namespace下的service就可以为整个集群提供服务,这些都需要通过RBAC定义集群级别的角色来实现。
|
||||||
|
|
||||||
## 哪些情况下适合使用多个namesapce
|
## 哪些情况下适合使用多个namesapce
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,109 @@
|
||||||
|
## 安装flannel网络插件
|
||||||
|
|
||||||
|
所有的node节点都需要安装网络插件才能让所有的Pod加入到同一个局域网中,本文是安装flannel网络插件的参考文档。
|
||||||
|
|
||||||
|
建议直接使用yum安装flanneld,除非对版本有特殊需求,默认安装的是0.7.1版本的flannel。
|
||||||
|
|
||||||
|
```shell
|
||||||
|
yum install -y flannel
|
||||||
|
```
|
||||||
|
|
||||||
|
service配置文件`/usr/lib/systemd/system/flanneld.service`。
|
||||||
|
|
||||||
|
```ini
|
||||||
|
[Unit]
|
||||||
|
Description=Flanneld overlay address etcd agent
|
||||||
|
After=network.target
|
||||||
|
After=network-online.target
|
||||||
|
Wants=network-online.target
|
||||||
|
After=etcd.service
|
||||||
|
Before=docker.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=notify
|
||||||
|
EnvironmentFile=/etc/sysconfig/flanneld
|
||||||
|
EnvironmentFile=-/etc/sysconfig/docker-network
|
||||||
|
ExecStart=/usr/bin/flanneld-start \
|
||||||
|
-etcd-endpoints=${ETCD_ENDPOINTS} \
|
||||||
|
-etcd-prefix=${ETCD_PREFIX} \
|
||||||
|
$FLANNEL_OPTIONS
|
||||||
|
ExecStartPost=/usr/libexec/flannel/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/docker
|
||||||
|
Restart=on-failure
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
|
RequiredBy=docker.service
|
||||||
|
```
|
||||||
|
|
||||||
|
`/etc/sysconfig/flanneld`配置文件:
|
||||||
|
|
||||||
|
```ini
|
||||||
|
# Flanneld configuration options
|
||||||
|
|
||||||
|
# etcd url location. Point this to the server where etcd runs
|
||||||
|
ETCD_ENDPOINTS="https://172.20.0.113:2379,https://172.20.0.114:2379,https://172.20.0.115:2379"
|
||||||
|
|
||||||
|
# etcd config key. This is the configuration key that flannel queries
|
||||||
|
# For address range assignment
|
||||||
|
ETCD_PREFIX="/kube-centos/network"
|
||||||
|
|
||||||
|
# Any additional options that you want to pass
|
||||||
|
FLANNEL_OPTIONS="-etcd-cafile=/etc/kubernetes/ssl/ca.pem -etcd-certfile=/etc/kubernetes/ssl/kubernetes.pem -etcd-keyfile=/etc/kubernetes/ssl/kubernetes-key.pem"
|
||||||
|
```
|
||||||
|
|
||||||
|
**在etcd中创建网络配置**
|
||||||
|
|
||||||
|
执行下面的命令为docker分配IP地址段。
|
||||||
|
|
||||||
|
```shell
|
||||||
|
etcdctl --endpoints=https://172.20.0.113:2379,https://172.20.0.114:2379,https://172.20.0.115:2379 \
|
||||||
|
--ca-file=/etc/kubernetes/ssl/ca.pem \
|
||||||
|
--cert-file=/etc/kubernetes/ssl/kubernetes.pem \
|
||||||
|
--key-file=/etc/kubernetes/ssl/kubernetes-key.pem \
|
||||||
|
mkdir /kube-centos/network
|
||||||
|
etcdctl --endpoints=https://172.20.0.113:2379,https://172.20.0.114:2379,https://172.20.0.115:2379 \
|
||||||
|
--ca-file=/etc/kubernetes/ssl/ca.pem \
|
||||||
|
--cert-file=/etc/kubernetes/ssl/kubernetes.pem \
|
||||||
|
--key-file=/etc/kubernetes/ssl/kubernetes-key.pem \
|
||||||
|
mk /kube-centos/network/config '{"Network":"172.30.0.0/16","SubnetLen":24,"Backend":{"Type":"vxlan"}}'
|
||||||
|
```
|
||||||
|
|
||||||
|
如果你要使用`host-gw`模式,可以直接将vxlan改成`host-gw`即可。
|
||||||
|
|
||||||
|
**注**:参考[网络和集群性能测试](network-and-cluster-perfermance-test.md)那节,最终我们使用的`host-gw`模式,关于flannel支持的backend模式见:<https://github.com/coreos/flannel/blob/master/Documentation/backends.md>。
|
||||||
|
|
||||||
|
**启动flannel**
|
||||||
|
|
||||||
|
```shell
|
||||||
|
systemctl daemon-reload
|
||||||
|
systemctl enable flanneld
|
||||||
|
systemctl start flanneld
|
||||||
|
systemctl status flanneld
|
||||||
|
```
|
||||||
|
|
||||||
|
现在查询etcd中的内容可以看到:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$etcdctl --endpoints=${ETCD_ENDPOINTS} \
|
||||||
|
--ca-file=/etc/kubernetes/ssl/ca.pem \
|
||||||
|
--cert-file=/etc/kubernetes/ssl/kubernetes.pem \
|
||||||
|
--key-file=/etc/kubernetes/ssl/kubernetes-key.pem \
|
||||||
|
ls /kube-centos/network/subnets
|
||||||
|
/kube-centos/network/subnets/172.30.14.0-24
|
||||||
|
/kube-centos/network/subnets/172.30.38.0-24
|
||||||
|
/kube-centos/network/subnets/172.30.46.0-24
|
||||||
|
$etcdctl --endpoints=${ETCD_ENDPOINTS} \
|
||||||
|
--ca-file=/etc/kubernetes/ssl/ca.pem \
|
||||||
|
--cert-file=/etc/kubernetes/ssl/kubernetes.pem \
|
||||||
|
--key-file=/etc/kubernetes/ssl/kubernetes-key.pem \
|
||||||
|
get /kube-centos/network/config
|
||||||
|
{ "Network": "172.30.0.0/16", "SubnetLen": 24, "Backend": { "Type": "vxlan" } }
|
||||||
|
$etcdctl get /kube-centos/network/subnets/172.30.14.0-24
|
||||||
|
{"PublicIP":"172.20.0.114","BackendType":"vxlan","BackendData":{"VtepMAC":"56:27:7d:1c:08:22"}}
|
||||||
|
$etcdctl get /kube-centos/network/subnets/172.30.38.0-24
|
||||||
|
{"PublicIP":"172.20.0.115","BackendType":"vxlan","BackendData":{"VtepMAC":"12:82:83:59:cf:b8"}}
|
||||||
|
$etcdctl get /kube-centos/network/subnets/172.30.46.0-24
|
||||||
|
{"PublicIP":"172.20.0.113","BackendType":"vxlan","BackendData":{"VtepMAC":"e6:b2:fd:f6:66:96"}}
|
||||||
|
```
|
||||||
|
|
||||||
|
如果可以查看到以上内容证明flannel已经安装完成,下一步是在node节点上安装和配置docker、kubelet、kube-proxy等,请参考下一节[部署node节点](node-installation.md)。
|
|
@ -1,5 +1,15 @@
|
||||||
# 最佳实践
|
# 最佳实践概览
|
||||||
|
|
||||||
本章节从零开始创建我们自己的kubernetes集群,并在该集群的基础上,配置服务发现、负载均衡和日志收集等功能,使我们的集群能够成为一个真正线上可用、功能完整的集群。
|
本章节从零开始创建我们自己的kubernetes集群,并在该集群的基础上,配置服务发现、负载均衡和日志收集等功能,使我们的集群能够成为一个真正线上可用、功能完整的集群。
|
||||||
|
|
||||||
第一部分[ 在CentOS上部署kubernetes1.6集群](install-kbernetes1.6-on-centos.md)中介绍了如何通过二进制文件在CentOS物理机上快速部署一个kubernetes集群,而[安装EFK插件](efk-addon-installation.md)是官方提供的一种日志收集方案,不一定适用于我们的业务,在此仅是介绍,并没有在实际生产中应用,后面的运维管理部分有详细的[应用日志收集](app-log-collection.md)方案介绍。
|
- 第一部分[ 在CentOS上部署kubernetes集群](install-kubernetes-on-centos.md)中介绍了如何通过二进制文件在CentOS物理机(也可以是公有云主机)上快速部署一个kubernetes集群。
|
||||||
|
- 第二部分介绍如何在kubernetes中的服务发现与负载均衡。
|
||||||
|
- 第三部分介绍如何运维kubernetes集群。
|
||||||
|
- 第四部分介绍kubernetes中的存储管理。
|
||||||
|
- 第五部分关于kubernetes集群和应用的监控。
|
||||||
|
- 第六部分介绍kuberentes中的服务编排与管理。
|
||||||
|
- 第七部分介绍如何基于kubernetes做持续集成与发布。
|
||||||
|
- 第八部分是kubernetes集群与插件的更新升级。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
> 本文档最初是基于kubenetes1.6版本编写的,对于kuberentes1.8版本同样适用,只是个别位置有稍许变动,变动的地方我将特别注明。
|
> 本文档最初是基于kubenetes1.6版本编写的,对于kuberentes1.8版本同样适用,只是个别位置有稍许变动,变动的地方我将特别注明。
|
||||||
|
|
||||||
本系列文档介绍使用二进制部署 `kubernetes` 集群的所有步骤,而不是使用 `kubeadm` 等自动化方式来部署集群,同时开启了集群的TLS安全认证;
|
本系列文档介绍使用二进制部署 `kubernetes` 集群的所有步骤,而不是使用 `kubeadm` 等自动化方式来部署集群,同时开启了集群的TLS安全认证,该安装步骤适用于所有bare metal环境、on-premise环境和公有云环境。
|
||||||
|
|
||||||
在部署的过程中,将详细列出各组件的启动参数,给出配置文件,详解它们的含义和可能遇到的问题。
|
在部署的过程中,将详细列出各组件的启动参数,给出配置文件,详解它们的含义和可能遇到的问题。
|
||||||
|
|
||||||
|
@ -28,10 +28,10 @@
|
||||||
+ Kubernetes 1.6.0
|
+ Kubernetes 1.6.0
|
||||||
+ Docker 1.12.5(使用yum安装)
|
+ Docker 1.12.5(使用yum安装)
|
||||||
+ Etcd 3.1.5
|
+ Etcd 3.1.5
|
||||||
+ Flanneld 0.7 vxlan 网络
|
+ Flannel 0.7.1 vxlan或者host-gw 网络
|
||||||
+ TLS 认证通信 (所有组件,如 etcd、kubernetes master 和 node)
|
+ TLS 认证通信 (所有组件,如 etcd、kubernetes master 和 node)
|
||||||
+ RBAC 授权
|
+ RBAC 授权
|
||||||
+ kublet TLS BootStrapping
|
+ kubelet TLS BootStrapping
|
||||||
+ kubedns、dashboard、heapster(influxdb、grafana)、EFK(elasticsearch、fluentd、kibana) 集群插件
|
+ kubedns、dashboard、heapster(influxdb、grafana)、EFK(elasticsearch、fluentd、kibana) 集群插件
|
||||||
+ 私有docker镜像仓库[harbor](https://github.com/vmware/harbor)(请自行部署,harbor提供离线安装包,直接使用docker-compose启动即可)
|
+ 私有docker镜像仓库[harbor](https://github.com/vmware/harbor)(请自行部署,harbor提供离线安装包,直接使用docker-compose启动即可)
|
||||||
|
|
||||||
|
@ -73,16 +73,17 @@
|
||||||
|
|
||||||
## 步骤介绍
|
## 步骤介绍
|
||||||
|
|
||||||
- [1 创建 TLS 证书和秘钥](create-tls-and-secret-key.md)
|
1. [创建 TLS 证书和秘钥](create-tls-and-secret-key.md)
|
||||||
- [2 创建kubeconfig 文件](create-kubeconfig.md)
|
2. [创建kubeconfig 文件](create-kubeconfig.md)
|
||||||
- [3 创建高可用etcd集群](etcd-cluster-installation.md)
|
3. [创建高可用etcd集群](etcd-cluster-installation.md)
|
||||||
- [4 安装kubectl命令行工具](kubectl-installation.md)
|
4. [安装kubectl命令行工具](kubectl-installation.md)
|
||||||
- [5 部署master节点](master-installation.md)
|
5. [部署master节点](master-installation.md)
|
||||||
- [6 部署node节点](node-installation.md)
|
6. [安装flannel网络插件](flannel-installation.md)
|
||||||
- [7 安装kubedns插件](kubedns-addon-installation.md)
|
7. [部署node节点](node-installation.md)
|
||||||
- [8 安装dashboard插件](dashboard-addon-installation.md)
|
8. [安装kubedns插件](kubedns-addon-installation.md)
|
||||||
- [9 安装heapster插件](heapster-addon-installation.md)
|
9. [安装dashboard插件](dashboard-addon-installation.md)
|
||||||
- [10 安装EFK插件](efk-addon-installation.md)
|
10. [安装heapster插件](heapster-addon-installation.md)
|
||||||
|
11. [安装EFK插件](efk-addon-installation.md)
|
||||||
|
|
||||||
## 提醒
|
## 提醒
|
||||||
|
|
|
@ -1,17 +1,17 @@
|
||||||
# 部署node节点
|
# 部署node节点
|
||||||
|
|
||||||
kubernetes node 节点包含如下组件:
|
Kubernetes node节点包含如下组件:
|
||||||
|
|
||||||
+ Flanneld:参考我之前写的文章[Kubernetes基于Flannel的网络配置](https://jimmysong.io/posts/kubernetes-network-config/),之前没有配置TLS,现在需要在service配置文件中增加TLS配置。
|
+ Flanneld:参考我之前写的文章[Kubernetes基于Flannel的网络配置](https://jimmysong.io/posts/kubernetes-network-config/),之前没有配置TLS,现在需要在service配置文件中增加TLS配置,安装过程请参考上一节[安装flannel网络插件](flannel-installation.md)。
|
||||||
+ Docker1.12.5:docker的安装很简单,这里也不说了。
|
+ Docker1.12.5:docker的安装很简单,这里也不说了,但是需要注意docker的配置。
|
||||||
+ kubelet
|
+ kubelet:直接用二进制文件安装
|
||||||
+ kube-proxy
|
+ kube-proxy:直接用二进制文件安装
|
||||||
|
|
||||||
**注意**:每台 node 上都需要安装 flannel,master 节点上可以不必安装。
|
**注意**:每台 node 上都需要安装 flannel,master 节点上可以不安装。
|
||||||
|
|
||||||
**步骤简介**
|
**步骤简介**
|
||||||
|
|
||||||
1. 使用yum安装配置网络插件flannel后启动
|
1. 确认在上一步中我们安装配置的网络插件flannel已启动且运行正常
|
||||||
2. 安装配置docker后启动
|
2. 安装配置docker后启动
|
||||||
3. 安装配置kubelet、kube-proxy后启动
|
3. 安装配置kubelet、kube-proxy后启动
|
||||||
4. 验证
|
4. 验证
|
||||||
|
@ -27,83 +27,9 @@ $ ls /etc/kubernetes/
|
||||||
apiserver bootstrap.kubeconfig config controller-manager kubelet kube-proxy.kubeconfig proxy scheduler ssl token.csv
|
apiserver bootstrap.kubeconfig config controller-manager kubelet kube-proxy.kubeconfig proxy scheduler ssl token.csv
|
||||||
```
|
```
|
||||||
|
|
||||||
## 配置Flanneld
|
## 配置Docker
|
||||||
|
|
||||||
参考我之前写的文章[Kubernetes基于Flannel的网络配置](https://jimmysong.io/posts/kubernetes-network-config/),之前没有配置TLS,现在需要在serivce配置文件中增加TLS配置。
|
> 如果您使用yum的方式安装的flannel则不需要执行mk-docker-opts.sh文件这一步,参考Flannel官方文档中的[Docker Integration](https://github.com/coreos/flannel/blob/master/Documentation/running.md)。
|
||||||
|
|
||||||
建议直接使用yum安装flanneld,除非对版本有特殊需求,默认安装的是0.7.1版本的flannel。
|
|
||||||
|
|
||||||
```shell
|
|
||||||
yum install -y flannel
|
|
||||||
```
|
|
||||||
|
|
||||||
service配置文件`/usr/lib/systemd/system/flanneld.service`。
|
|
||||||
|
|
||||||
```ini
|
|
||||||
[Unit]
|
|
||||||
Description=Flanneld overlay address etcd agent
|
|
||||||
After=network.target
|
|
||||||
After=network-online.target
|
|
||||||
Wants=network-online.target
|
|
||||||
After=etcd.service
|
|
||||||
Before=docker.service
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=notify
|
|
||||||
EnvironmentFile=/etc/sysconfig/flanneld
|
|
||||||
EnvironmentFile=-/etc/sysconfig/docker-network
|
|
||||||
ExecStart=/usr/bin/flanneld-start \
|
|
||||||
-etcd-endpoints=${ETCD_ENDPOINTS} \
|
|
||||||
-etcd-prefix=${ETCD_PREFIX} \
|
|
||||||
$FLANNEL_OPTIONS
|
|
||||||
ExecStartPost=/usr/libexec/flannel/mk-docker-opts.sh -k DOCKER_NETWORK_OPTIONS -d /run/flannel/docker
|
|
||||||
Restart=on-failure
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
RequiredBy=docker.service
|
|
||||||
```
|
|
||||||
|
|
||||||
`/etc/sysconfig/flanneld`配置文件:
|
|
||||||
|
|
||||||
```ini
|
|
||||||
# Flanneld configuration options
|
|
||||||
|
|
||||||
# etcd url location. Point this to the server where etcd runs
|
|
||||||
ETCD_ENDPOINTS="https://172.20.0.113:2379,https://172.20.0.114:2379,https://172.20.0.115:2379"
|
|
||||||
|
|
||||||
# etcd config key. This is the configuration key that flannel queries
|
|
||||||
# For address range assignment
|
|
||||||
ETCD_PREFIX="/kube-centos/network"
|
|
||||||
|
|
||||||
# Any additional options that you want to pass
|
|
||||||
FLANNEL_OPTIONS="-etcd-cafile=/etc/kubernetes/ssl/ca.pem -etcd-certfile=/etc/kubernetes/ssl/kubernetes.pem -etcd-keyfile=/etc/kubernetes/ssl/kubernetes-key.pem"
|
|
||||||
```
|
|
||||||
|
|
||||||
**在etcd中创建网络配置**
|
|
||||||
|
|
||||||
执行下面的命令为docker分配IP地址段。
|
|
||||||
|
|
||||||
```shell
|
|
||||||
etcdctl --endpoints=https://172.20.0.113:2379,https://172.20.0.114:2379,https://172.20.0.115:2379 \
|
|
||||||
--ca-file=/etc/kubernetes/ssl/ca.pem \
|
|
||||||
--cert-file=/etc/kubernetes/ssl/kubernetes.pem \
|
|
||||||
--key-file=/etc/kubernetes/ssl/kubernetes-key.pem \
|
|
||||||
mkdir /kube-centos/network
|
|
||||||
etcdctl --endpoints=https://172.20.0.113:2379,https://172.20.0.114:2379,https://172.20.0.115:2379 \
|
|
||||||
--ca-file=/etc/kubernetes/ssl/ca.pem \
|
|
||||||
--cert-file=/etc/kubernetes/ssl/kubernetes.pem \
|
|
||||||
--key-file=/etc/kubernetes/ssl/kubernetes-key.pem \
|
|
||||||
mk /kube-centos/network/config '{"Network":"172.30.0.0/16","SubnetLen":24,"Backend":{"Type":"vxlan"}}'
|
|
||||||
```
|
|
||||||
|
|
||||||
如果你要使用`host-gw`模式,可以直接将vxlan改成`host-gw`即可。
|
|
||||||
|
|
||||||
**注**:参考[网络和集群性能测试](network-and-cluster-perfermance-test.md)那节,最终我们使用的`host-gw`模式,关于flannel支持的backend模式见:<https://github.com/coreos/flannel/blob/master/Documentation/backends.md>。
|
|
||||||
|
|
||||||
**配置Docker**
|
|
||||||
|
|
||||||
> 如果您使用yum的方式安装的flannel则不需要执行这一步,参考Flannel官方文档中的[Docker Integration](https://github.com/coreos/flannel/blob/master/Documentation/running.md)。
|
|
||||||
|
|
||||||
如果你不是使用yum安装的flannel,那么需要下载flannel github release中的tar包,解压后会获得一个**mk-docker-opts.sh**文件,到[flannel release](https://github.com/coreos/flannel/releases)页面下载对应版本的安装包,该脚本见[mk-docker-opts.sh](https://github.com/rootsongjc/kubernetes-handbook/tree/master/tools/flannel/mk-docker-opts.sh),因为我们使用yum安装所以不需要执行这一步。
|
如果你不是使用yum安装的flannel,那么需要下载flannel github release中的tar包,解压后会获得一个**mk-docker-opts.sh**文件,到[flannel release](https://github.com/coreos/flannel/releases)页面下载对应版本的安装包,该脚本见[mk-docker-opts.sh](https://github.com/rootsongjc/kubernetes-handbook/tree/master/tools/flannel/mk-docker-opts.sh),因为我们使用yum安装所以不需要执行这一步。
|
||||||
|
|
||||||
|
@ -130,7 +56,44 @@ DOCKER_OPT_MTU="--mtu=1450"
|
||||||
|
|
||||||
Docker将会读取这两个环境变量文件作为容器启动参数。
|
Docker将会读取这两个环境变量文件作为容器启动参数。
|
||||||
|
|
||||||
**启动docker**
|
**注意:**不论您用什么方式安装的flannel,下面这一步是必不可少的。
|
||||||
|
|
||||||
|
**yum方式安装的flannel**
|
||||||
|
|
||||||
|
修改docker的配置文件`/usr/lib/systemd/system/docker.service`,增加一条环境变量配置:
|
||||||
|
|
||||||
|
```ini
|
||||||
|
EnvironmentFile=-/run/flannel/docker
|
||||||
|
```
|
||||||
|
|
||||||
|
`/run/flannel/docker`文件是flannel启动后自动生成的,其中包含了docker启动时需要的参数。
|
||||||
|
|
||||||
|
**二进制方式安装的flannel**
|
||||||
|
|
||||||
|
修改docker的配置文件`/usr/lib/systemd/system/docker.service`,增加如下几条环境变量配置:
|
||||||
|
|
||||||
|
```ini
|
||||||
|
EnvironmentFile=-/run/docker_opts.env
|
||||||
|
EnvironmentFile=-/run/flannel/subnet.env
|
||||||
|
```
|
||||||
|
|
||||||
|
这两个文件是`mk-docker-opts.sh`脚本生成环境变量文件默认的保存位置,docker启动的时候需要加载这几个配置文件才可以加入到flannel创建的虚拟网络里。
|
||||||
|
|
||||||
|
所以不论您使用何种方式安装的flannel,将以下配置加入到`docker.service`中可确保万无一失。
|
||||||
|
|
||||||
|
```ini
|
||||||
|
EnvironmentFile=-/run/flannel/docker
|
||||||
|
EnvironmentFile=-/run/docker_opts.env
|
||||||
|
EnvironmentFile=-/run/flannel/subnet.env
|
||||||
|
EnvironmentFile=-/etc/sysconfig/docker
|
||||||
|
EnvironmentFile=-/etc/sysconfig/docker-storage
|
||||||
|
EnvironmentFile=-/etc/sysconfig/docker-network
|
||||||
|
EnvironmentFile=-/run/docker_opts.env
|
||||||
|
```
|
||||||
|
|
||||||
|
请参考[docker.service](https://github.com/rootsongjc/kubernetes-handbook/blob/master/systemd/docker.service)中的配置。
|
||||||
|
|
||||||
|
### 启动docker
|
||||||
|
|
||||||
重启了docker后还要重启kubelet,这时又遇到问题,kubelet启动失败。报错:
|
重启了docker后还要重启kubelet,这时又遇到问题,kubelet启动失败。报错:
|
||||||
|
|
||||||
|
@ -146,40 +109,6 @@ Mar 31 16:44:41 sz-pg-oam-docker-test-002.tendcloud.com kubelet[81047]: error: f
|
||||||
|
|
||||||
配置docker的service配置文件`/usr/lib/systemd/system/docker.service`,设置`ExecStart`中的`--exec-opt native.cgroupdriver=systemd`。
|
配置docker的service配置文件`/usr/lib/systemd/system/docker.service`,设置`ExecStart`中的`--exec-opt native.cgroupdriver=systemd`。
|
||||||
|
|
||||||
**启动flannel**
|
|
||||||
|
|
||||||
```shell
|
|
||||||
systemctl daemon-reload
|
|
||||||
systemctl enable flanneld
|
|
||||||
systemctl start flanneld
|
|
||||||
systemctl status flanneld
|
|
||||||
```
|
|
||||||
|
|
||||||
现在查询etcd中的内容可以看到:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
$etcdctl --endpoints=${ETCD_ENDPOINTS} \
|
|
||||||
--ca-file=/etc/kubernetes/ssl/ca.pem \
|
|
||||||
--cert-file=/etc/kubernetes/ssl/kubernetes.pem \
|
|
||||||
--key-file=/etc/kubernetes/ssl/kubernetes-key.pem \
|
|
||||||
ls /kube-centos/network/subnets
|
|
||||||
/kube-centos/network/subnets/172.30.14.0-24
|
|
||||||
/kube-centos/network/subnets/172.30.38.0-24
|
|
||||||
/kube-centos/network/subnets/172.30.46.0-24
|
|
||||||
$etcdctl --endpoints=${ETCD_ENDPOINTS} \
|
|
||||||
--ca-file=/etc/kubernetes/ssl/ca.pem \
|
|
||||||
--cert-file=/etc/kubernetes/ssl/kubernetes.pem \
|
|
||||||
--key-file=/etc/kubernetes/ssl/kubernetes-key.pem \
|
|
||||||
get /kube-centos/network/config
|
|
||||||
{ "Network": "172.30.0.0/16", "SubnetLen": 24, "Backend": { "Type": "vxlan" } }
|
|
||||||
$etcdctl get /kube-centos/network/subnets/172.30.14.0-24
|
|
||||||
{"PublicIP":"172.20.0.114","BackendType":"vxlan","BackendData":{"VtepMAC":"56:27:7d:1c:08:22"}}
|
|
||||||
$etcdctl get /kube-centos/network/subnets/172.30.38.0-24
|
|
||||||
{"PublicIP":"172.20.0.115","BackendType":"vxlan","BackendData":{"VtepMAC":"12:82:83:59:cf:b8"}}
|
|
||||||
$etcdctl get /kube-centos/network/subnets/172.30.46.0-24
|
|
||||||
{"PublicIP":"172.20.0.113","BackendType":"vxlan","BackendData":{"VtepMAC":"e6:b2:fd:f6:66:96"}}
|
|
||||||
```
|
|
||||||
|
|
||||||
## 安装和配置kubelet
|
## 安装和配置kubelet
|
||||||
|
|
||||||
**kubernets1.8**
|
**kubernets1.8**
|
||||||
|
@ -256,7 +185,6 @@ kubelet的配置文件`/etc/kubernetes/kubelet`。其中的IP地址更改为你
|
||||||
相对于kubenrete1.6的配置变动:
|
相对于kubenrete1.6的配置变动:
|
||||||
|
|
||||||
- 对于kuberentes1.8集群中的kubelet配置,取消了`KUBELET_API_SERVER`的配置,而改用kubeconfig文件来定义master地址。
|
- 对于kuberentes1.8集群中的kubelet配置,取消了`KUBELET_API_SERVER`的配置,而改用kubeconfig文件来定义master地址。
|
||||||
-
|
|
||||||
|
|
||||||
``` bash
|
``` bash
|
||||||
###
|
###
|
||||||
|
|
Loading…
Reference in New Issue