一、安装前准备
环境:ubuntu 16.04
$ sudo su
$ apt-get update
$ swapoff -a
1. 安装Docker
$ sudo su
$ apt-get update
$ apt-get install -y docker.io
2. 安装OpenSSH
如果没有安装openssh
的话,执行下面命令安装:
$ sudo apt-get install openssh-server
3. 安装Kubernetes
工具
安装本文将要使用到个三个kubernetes工具:kubelet
, kubeadm
, kubectl
首先准备安装这三个工具的条件:
$ apt-get update && apt-get install -y apt-transport-https curl
$ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
$ cat </etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main
EOF
$ apt-get update
执行下面命令安装三个工具:
$ apt-get install -y kubelet kubeadm kubectl
二、配置Kubernetes
$ vim /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
在所有Environment
后面添加一行:
Environment="cgroup-driver=systemd/cgroup-driver=cgroupfs"
注意:以上
步骤一
和步骤二
需要在所有node
上执行,包括master
和各个node
节点上。
三、配置Master
以下步骤仅在master
节点上执行。
首先使用kuberadm init
初始化kubernetes。
$ kubeadm init --apiserver-advertise-address=192.168.0.12 --pod-network-cidr=192.168.0.0/16
--apiserver-advertise-address
为master
节点的IP地址
。
上面命令执行成功后,执行以下命令配置kubectl
:
$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
接下来可以运行kubectl
命令检查kubernetes是否成功初始化
:
$ kubectl get pods -o wide --all-namespaces
接下来配置master网络
,可以选择Calico
或者Flannel
。
如果用Calico
,执行以下命令:
$ kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/etcd.yaml
$ kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/rbac.yaml
$ kubectl apply -f https://docs.projectcalico.org/v3.3/getting-started/kubernetes/installation/hosted/calico.yaml
如果用Flannel
,执行下面命令:
$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
默认情况下,master
上是不允许创建pod
的,如果想在master上也可以创建pod,可以执行以下命令开启:
$ kubectl taint nodes --all node-role.kubernetes.io/master-
四、配置Node
节点
Node节点
几乎不需要任何配置,只要安装好kubernetes三个工具后,执行kubeadm join
把node节点加入kubernetes集群即可:
$ kubeadm join 192.168.0.12:6443 --token xmbbp0.qu9z2d7qw5b9m855 --discovery-token-ca-cert-hash sha256:2eb0e8dde0df05555222ade14fb15f88d38b4a0d433fe50d3c5614f26f9109ff
这个命令在master上执行kubeadm init
时会给出,包含了具体的token
和ca-cert
,请按实际输出的信息执行join
命令。