文档章节

Ubuntu 18.04 LTS安装Kubernetes 1.11

openthings
 openthings
发布于 2018/08/04 15:59
字数 1074
阅读 4672
收藏 3

Ubuntu 18.04 + Kuberntes 1.11.2 + Istio 1.0组合来了。

安装Docker

#准备软件源
sudo apt install docker.io
sudo systemctl enable docker

Install Docker -CE

add key:

https_proxy=192.168.199.249:30999 wget https://download.docker.com/linux/ubuntu/gpg -O docker.key
sudo apt-key add docker.key

add source

sudo echo "deb [arch=amd64] https://download.docker.com/linux/ubuntu bionic edge" > /etc/apt/sources.list.d/docker.list
sudo apt update
sudo apt install docker-ce

确保kubelet使用的cgroup driver 与 Docker的一致。要么使用下面的方法更新 Docker:

cat << EOF > /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF

然后重启Docker服务,运行:

sudo systemctl daemon-reload
sudo systemctl restart docker

Kuberntes 1.11.2 安装

按照以下步骤操作:

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add
sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"

#安装基础支持软件
sudo apt install kubeadm kubectl kubelet

#关闭磁盘交换 
sudo swapoff -a

#清除防火墙设置
sudo iptables -F

#设置域名
sudo hostnamectl set-hostname kubernetes-master

#初始化环境,注意这个版本号一定要指定(否则会挂起)。
#指定使用CoreDNS作为名称服务,可以不指定--feature-gates CoreDNS=true,则使用默认的kubedns服务。
sudo kubeadm init --kubernetes-version=v1.11.2 --pod-network-cidr=10.244.0.0/16 --feature-gates CoreDNS=true

#指定IP地址,1.12.2版本:
# sudo kubeadm init --kubernetes-version=v1.12.2 --apiserver-advertise-address=10.1.1.201 --pod-network-cidr=10.244.0.0/16 --feature-gates CoreDNS=true


#创建用户配置文件
mkdir -p $HOME/.kube
kubernetes-master:~$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
kubernetes-master:~$ sudo chown $(id -u):$(id -g) $HOME/.kube/config

#安装网络
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

#启用主控机同时作为工作节点
kubectl taint nodes --all node-role.kubernetes.io/master-


#查看结果
kubectl get pods --all-namespaces

!!!不过,有两个问题

  • 目前kubernetes还没有Ubuntu18.04的编好的版本,用的16.04 xenial的二进制文件。
  • 上面的cloud.google的key会出错,使用下面的方法来获取
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 6A030B21BA07F4FB

然后执行sudo apt update及其后面的安装步骤。

!!!安装flannel网络出现pending挂起问题(podCidr参数丢失,即便在kubeadm运行时已指定):

#查看日志:
kubectl get pods --namespace kube-system
kubectl --namespace kube-system logs kube-flannel-ds-bvxd2
#上面的kube-flannel-ds-bvxd2为flannel的pod名称,根据get pods返回的名称输入。

#编辑 /etc/kubernetes/manifests/kube-controller-manager.yaml
在command节,加入:
- --allocate-node-cidrs=true
- --cluster-cidr=10.244.0.0/16

然后system restart kubelet即可。

安装Helm和Dashboard

参考:

提前拉取容器镜像

目前kubernetes最新版本是1.11.2,可以从我做的镜像库上拉取:

echo ""
echo "=========================================================="
echo "Pull Kubernetes 1.11.1 Images from aliyuncs.com ......"
echo "=========================================================="
echo ""

MY_REGISTRY=registry.cn-hangzhou.aliyuncs.com/openthings

## 拉取镜像
docker pull ${MY_REGISTRY}/k8s-gcr-io-kube-apiserver-amd64:v1.11.2
docker pull ${MY_REGISTRY}/k8s-gcr-io-kube-controller-manager-amd64:v1.11.2
docker pull ${MY_REGISTRY}/k8s-gcr-io-kube-scheduler-amd64:v1.11.2
docker pull ${MY_REGISTRY}/k8s-gcr-io-kube-proxy-amd64:v1.11.2
docker pull ${MY_REGISTRY}/k8s-gcr-io-etcd-amd64:3.2.18
docker pull ${MY_REGISTRY}/k8s-gcr-io-pause-amd64:3.1
docker pull ${MY_REGISTRY}/k8s-gcr-io-coredns:1.1.3


## 添加Tag
docker tag ${MY_REGISTRY}/k8s-gcr-io-kube-apiserver-amd64:v1.11.2 k8s.gcr.io/kube-apiserver-amd64:v1.11.2
docker tag ${MY_REGISTRY}/k8s-gcr-io-kube-scheduler-amd64:v1.11.2 k8s.gcr.io/kube-scheduler-amd64:v1.11.2
docker tag ${MY_REGISTRY}/k8s-gcr-io-kube-controller-manager-amd64:v1.11.2 k8s.gcr.io/kube-controller-manager-amd64:v1.11.2
docker tag ${MY_REGISTRY}/k8s-gcr-io-kube-proxy-amd64:v1.11.2 k8s.gcr.io/kube-proxy-amd64:v1.11.2
docker tag ${MY_REGISTRY}/k8s-gcr-io-etcd-amd64:3.2.18 k8s.gcr.io/etcd-amd64:3.2.18
docker tag ${MY_REGISTRY}/k8s-gcr-io-pause-amd64:3.1 k8s.gcr.io/pause-amd64:3.1
docker tag ${MY_REGISTRY}/k8s-gcr-io-coredns:1.1.3 k8s.gcr.io/coredns:1.1.3

echo ""
echo "=========================================================="
echo "Pull Kubernetes 1.11.2 Images FINISHED."
echo "into registry.cn-hangzhou.aliyuncs.com/openthings, "
echo "           by openthings@https://my.oschina.net/u/2306127."
echo "=========================================================="

echo ""

把上面的内容保存为脚本文件,运行即可。

然后再去运行kubeadm init进行集群的初始化工作。

然后安装Istio 1.0

Istio 1.0快速安装到Kubernetes集群

Kubenetes服务不启动问题

重启系统后,发现kubelet服务没有起来,首先检查:

nano /etc/fstab
#注释掉里面的swap一行。

最后,/etc/systemd/system/kubelet.service.d/10-kubeadm.conf 文件加入KUBELET_CGROUP_ARGS和KUBELET_EXTRA_ARGS参数,注意在启动参数中也要加入,如下:

[Service]

Environment="KUBELET_CGROUP_ARGS=--cgroup-driver=systemd"
Environment="KUBELET_EXTRA_ARGS=--fail-swap-on=false"

ExecStart=
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_SYSTEM_PODS_ARGS $KUBELET_NETWORK_ARGS $KUBELET_DNS_ARGS $KUBELET_AUTHZ_ARGS $KUBELET_CADVISOR_ARGS $KUBELET_CERTIFICATE_ARGS $KUBELET_CGROUP_ARGS $KUBELET_EXTRA_ARGS

!然后重启kubelet服务,运行:

systemctl daemon-reload
systemctl restart kubelet

© 著作权归作者所有

openthings
粉丝 325
博文 1140
码字总数 689435
作品 1
东城
架构师
私信 提问
加载中

评论(1)

开开心心打酱油
开开心心打酱油
装了几次,都未成功,看了你这篇文章后成功搭建了起来,谢谢你
多网卡Ubuntu服务器安装Kubernetes

多网卡服务器安装Kubernetes如何指定集群选用的IP地址呢? 指定--apiserver-advertise-address参数即可。如下: 可以指定多端口聚合的网址,参考: NetPlan: https://netplan.io/examples U...

openthings
2018/11/25
222
0
Kubernetes的离线部署(Ubuntu)方法试验

为了在内网上使用Kubernetes,有时候因为网络原因,需要离线进行部署。 裸机安装 我这里使用Ubuntu进行试验,需要解决几个问题: Ubuntu的离线安装。下载,安装时选择不联网可以正常完成,没...

openthings
2018/09/05
406
1
Kubernetes 1.13.1快速升级

Kubernetes 1.13.1已经正式发布,快速升级(含国内镜像快速下载链接)包括升级kubeadm/kubectl/kubelet版本、拉取镜像、升级Kubernetes集群三个主要步骤。注意Kubernetes 1.12.3版本暂时不支...

openthings
2018/12/14
1K
0
Kubernetes 1.13.0的快速升级

Kubernetes 1.13.0已经正式发布,快速升级(含国内镜像快速下载链接)包括升级kubeadm/kubectl/kubelet版本、拉取镜像、升级Kubernetes集群三个主要步骤。 注意: Kubernetes 1.13.0使用ETCDC...

openthings
2018/12/10
412
0
Kubernetes 1.12.3快速升级

Kubernetes 1.12.3已经正式发布,快速升级(含国内镜像快速下载链接)包括升级kubeadm/kubectl/kubelet版本、拉取镜像、升级Kubernetes集群三个主要步骤。注意Kubernetes 1.12.3版本暂时不支...

openthings
2018/11/25
413
0

没有更多内容

加载失败,请刷新页面

加载更多

框架和库的区别

框架和库的区别 框架:是一套完整的解决方案;对项目的侵入性较大,项目如果需要更换框架,则需要重新架构整个项目。 node 中的 express; 库(插件):提供某一个小功能,对项目的侵入性较小...

庭前云落
16分钟前
4
1
基于 Dawn 进行多工程管理

1. 简述 当一个项目中子工程较多时,就会面临「单仓库(Monorepo)」还是「多仓库(Multirepo)」管理的问题。当然两个方式各有优缺点,而我们选择多工程单 Repo 时,能够带来一些管理上的简...

阿里云官方博客
16分钟前
3
0
Joomla 4具有可自定义的HTML电子邮件模板

Joomla 4大约每个月都会发布一个Alpha版本。上个月,我们得到了一个新的管理模板。 Joomla 4的最新版本是Alpha 12。 该版本的主要新特性是可定制的电子邮件模板。您将能够控制从您的网站发送...

六艺网络专注于Joomla
20分钟前
3
0
Idea配置

配置文件idea64.exe.vmoptions -Xms128m, 16 G 内存的机器可尝试设置为 -Xms512m (设置初始的内存数,增加该值可以提高 Java 程序的启动速度。 ) -Xmx750m, 16 G 内存的机器可尝试设置为 ...

行者终成事
22分钟前
4
0
大小仅1MB!超轻量级的人脸识别模型火爆Github

项目地址:https://github.com/Linzaer/Ultra-Light-Fast-Generic-Face-Detector-1MB 近日,用户Linzaer在Github上开源了一款适用于边缘计算设备、移动端设备以及 PC 的超轻量级通用人脸检测...

编程资源库
23分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部