在ubuntu16.4 安装Kubernetes1.9

**声明:此文为笔者个人经验,仅供参考**。
本文省略的docker的安装, kubernetes的master和work节点都需要安装docker, 最好使用指定版本的docker, 例如比这安装的是k8s 1.9, 就安装了sudo apt-get install docker-ce=17.03.0~ce-0~ubuntu-xenial, 因为较高的docker版本不在k8s v1.9的测试覆盖范围内:你会得到如下消息[WARNING SystemVerification]: docker version is greater than the most recently validated version. Docker version: 17.05.0-ce      . Max validated version: 17.03

kubernetes的官方指南参看https://kubernetes.io/docs/setup/independent/create-cluster-kubeadm/

第一步 安装依赖库
sudo apt-get update && apt-get install -y apt-transport-https

安装docker(具体步骤省略了,安装docker的最后一条命令是sudo apt-get install docker-ce=17.03.0ce-0ubuntu-xenial)

关闭swap, 执行swapoff -a命令
第二步 安装k8s
sudo curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add
将k8s的repository添加到/etc/apt/sources.list.d/kubernetes.list
deb http://apt.kubernetes.io/ kubernetes-xenial main

具体命令为:echo “deb http://apt.kubernetes.io/ kubernetes-xenial main” > /etc/apt/sources.list.d/kubernetes.list

更新repository:apt-get update
如图
在ubuntu16.4 安装Kubernetes1.9_第1张图片
查询k8s的可以安装的版本: apt-cache madison kubeadm
apt-cache madison kubelet
apt-cache madison kubectl
apt-cache kubernetes-cni
如图在ubuntu16.4 安装Kubernetes1.9_第2张图片

如下所示
root@ubuntu1:/home/yangqian# apt-cache madison kubernetes-cni
kubernetes-cni | 0.6.0-00 | http://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
kubernetes-cni | 0.5.1-00 | http://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
kubernetes-cni | 0.3.0.1-07a8a2-00 | http://apt.kubernetes.io kubernetes-xenial/main amd64 Packages
安装具体版本, 例如
apt-get install kubeadm=1.9.0-00
apt-get install kubelet=1.9.0-00
apt-get install kubectl=1.9.0-00
apt-get install kubernetes-cni=0.6.0-00

第三步 配置k8s集群
k8s的安装完成后,执行kubeadm init ,按照该命令给出的提示执行即可

但是在笔者的ubuntu16.5上dns无法启动,最后只好修改成
kubeadm init --pod-network-cidr 10.244.0.0/16然后一切顺利
如图
在ubuntu16.4 安装Kubernetes1.9_第3张图片

按照上面的提示执行:
sudo kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

检查各个服务都启动了
root@ubuntu4:/home/yangqian# kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
ubuntu4 Ready master 2h v1.9.0 Ubuntu 16.04.3 LTS 4.10.0-28-generic docker://17.3.0

以及命令
kubectl get all --all-namespaces

如图
在ubuntu16.4 安装Kubernetes1.9_第4张图片

现在只有一个master节点, 在其他work节点安装好k8s后,可以执行如下命令:
kubeadm join --token 8dc9d8.df09161bed020a12 192.168.81.138:6443 --discovery-token-ca-cert-hash sha256:16edde。。。

我们也可以看到docker已经下载对应的images:
root@ubuntu4:/home/yangqian# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
gcr.io/google_containers/kube-proxy-amd64 v1.9.0 f6f363e6e98e 3 days ago 109 MB
gcr.io/google_containers/kube-apiserver-amd64 v1.9.0 7bff5aa286d7 3 days ago 210 MB
gcr.io/google_containers/kube-controller-manager-amd64 v1.9.0 3bb172f9452c 3 days ago 138 MB
gcr.io/google_containers/kube-scheduler-amd64 v1.9.0 5ceb21996307 3 days ago 62.7 MB
hello-world latest f2a91732366c 4 weeks ago 1.85 kB
quay.io/coreos/flannel v0.9.1-amd64 2b736d06ca4c 4 weeks ago 51.3 MB
gcr.io/google_containers/k8s-dns-sidecar-amd64 1.14.7 db76ee297b85 8 weeks ago 42 MB
gcr.io/google_containers/k8s-dns-kube-dns-amd64 1.14.7 5d049a8c4eec 8 weeks ago 50.3 MB
gcr.io/google_containers/k8s-dns-dnsmasq-nanny-amd64 1.14.7 5feec37454f4 8 weeks ago 41 MB
gcr.io/google_containers/etcd-amd64 3.1.10 1406502a6459 3 months ago 193 MB
gcr.io/google_containers/pause-amd64 3.0 99e59f495ffa 19 months ago 747 kB

然后重新查看kubectl get nodes -o wide

root@ubuntu1:/home/yangqian# kubectl get nodes
NAME STATUS ROLES AGE VERSION
ubuntu4 Ready master 43m v1.9.0
ubuntu3 Ready 2m v1.9.0

root@ubuntu1:/home/yangqian# kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
ubuntu4 Ready master 44m v1.9.0 Ubuntu 16.04.3 LTS 4.4.0-104-generic docker://17.3.0
ubuntu3 Ready 2m v1.9.0 Ubuntu 16.04.3 LTS 4.10.0-42-generic docker://17.9.1

你可能感兴趣的:(docker,kubernetes,ubuntu)