我们已经可以很方便的使用kubeadm快速初始化Kubernetes集群,但kubeadm当前还不能用于生产环境,同时kubeadm初始化的集群的Master节点不是高可用的,后端存储etcd也是单点。因此,本文将基于Kubernetes二进制包手动部署一个高可用的Kubernetes 1.6集群,将启用ApiServer的TLS双向认证和RBAC授权等安全机制。 通过这个手动部署的过程,我们还可以更加深入理解Kubernetes各组件的交互和运行原理。
1. 环境准备
1.1 系统环境
操作系统CentOS 7.3
1 2 3 4 |
192.168.61.11 node1 192.168.61.12 node2 192.168.61.13 node3 |
1.2 安装包下载
从这里下载kubernetes二进制安装包:
1 2 3 4 |
wget <a href="https://storage.googleapis.com/kubernetes-release-dashpole/release/v1.9.0-alpha.3/kubernetes-server-linux-amd64.tar.gz">https://storage.googleapis.com/kubernetes-release-dashpole/release/v1.9.0-alpha.3/kubernetes-server-linux-amd64.tar.gz</a> tar -zxvf kubernetes-server-linux-amd64.tar.g |
1.3 系统配置
在各节点创建/etc/sysctl.d/k8s.conf文件,添加如下内容:
1 2 3 |
net.bridge.bridge-nf-call-ip6tables = 1 net.bridge.bridge-nf-call-iptables = 1 |
执行sysctl -p /etc/sysctl.d/k8s.conf
使修改生效。
如果报以下错:
1 2 3 |
[root@k8s-master-dev-1 packages]# sysctl -p /etc/sysctl.d/k8s.conf sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-ip6tables: No such file or directory sysctl: cannot stat /proc/sys/net/bridge/bridge-nf-call-iptables: No such file or directory |
解决办法:
1 2 3 |
[root@k8s-master-dev-1 ~]# modprobe br_netfilter [root@k8s-master-dev-1 ~]# ls /proc/sys/net/bridge [root@k8s-master-dev-1 ~]# sysctl -p /etc/sysctl.d/k8s.conf |
禁用selinux:
1 2 3 |
setenforce 0 vi /etc/selinux/config SELINUX=disabled |
参考: https://blog.frognew.com/2017/04/install-ha-kubernetes-1.6-cluster.html#13-系统配置
0 Comments