Kubernetes入门:使用kubeadm在ubuntu上安装kubernetes


一、安装前准备

环境: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-addressmaster节点的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时会给出,包含了具体的tokenca-cert,请按实际输出的信息执行join命令。


文章作者: yglong
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 yglong !
评论
  目录