Ubuntu 18.04 LTS如何安装Kubernetes 1.11
这篇文章主要介绍了Ubuntu 18.04 LTS如何安装Kubernetes 1.11,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
Ubuntu 18.04 + Kuberntes 1.11.2 + Istio 1.0组合来了。
完整安装说明,参考:
https://linuxconfig.org/how-to-install-kubernetes-on-ubuntu-18-04-bionic-beaver-linux
安装的其它细节问题解决:
https://my.oschina.net/u/2306127/blog/1628082
需要容器GPU支持,参考:
http://Kubernetes安装GPU支持插件
服务网格Istio安装,参考:
Istio 1.0快速安装到Kubernetes集群
安装工具相关脚本资源:
https://github.com/openthings/kubernetes-tools
安装Docker
#准备软件源sudo apt install docker.iosudo 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.keysudo 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.listsudo apt updatesudo 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-reloadsudo systemctl restart docker
Kuberntes 1.11.2 安装
按照以下步骤操作:
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key addsudo 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/.kubekubernetes-master:~$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configkubernetes-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-systemkubectl --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即可。
该问题解决办法的详细参考:https://github.com/coreos/flannel/issues/728
安装Helm和Dashboard
参考:
Kubernetes Dashboard面板服务安装,https://my.oschina.net/u/2306127/blog/1606599
dashboard安装授权登录详细参考,https://my.oschina.net/u/2306127/blog/1630861
Helm软件包管理服务安装,https://my.oschina.net/u/2306127/blog/1619818
注意,使用 sudo https_proxy=127.0.0.1:9999 helm init --service-account tiller 来添加repo(需要访问gcr,但proxy导致无法访问本地集群端口),然后再次运行 helm init --service-account tiller(添加helm tiller pod到集群)。
提前拉取容器镜像
目前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.2docker pull ${MY_REGISTRY}/k8s-gcr-io-kube-controller-manager-amd64:v1.11.2docker pull ${MY_REGISTRY}/k8s-gcr-io-kube-scheduler-amd64:v1.11.2docker pull ${MY_REGISTRY}/k8s-gcr-io-kube-proxy-amd64:v1.11.2docker pull ${MY_REGISTRY}/k8s-gcr-io-etcd-amd64:3.2.18docker pull ${MY_REGISTRY}/k8s-gcr-io-pause-amd64:3.1docker pull ${MY_REGISTRY}/k8s-gcr-io-coredns:1.1.3## 添加Tagdocker tag ${MY_REGISTRY}/k8s-gcr-io-kube-apiserver-amd64:v1.11.2 k8s.gcr.io/kube-apiserver-amd64:v1.11.2docker tag ${MY_REGISTRY}/k8s-gcr-io-kube-scheduler-amd64:v1.11.2 k8s.gcr.io/kube-scheduler-amd64:v1.11.2docker tag ${MY_REGISTRY}/k8s-gcr-io-kube-controller-manager-amd64:v1.11.2 k8s.gcr.io/kube-controller-manager-amd64:v1.11.2docker tag ${MY_REGISTRY}/k8s-gcr-io-kube-proxy-amd64:v1.11.2 k8s.gcr.io/kube-proxy-amd64:v1.11.2docker tag ${MY_REGISTRY}/k8s-gcr-io-etcd-amd64:3.2.18 k8s.gcr.io/etcd-amd64:3.2.18docker tag ${MY_REGISTRY}/k8s-gcr-io-pause-amd64:3.1 k8s.gcr.io/pause-amd64:3.1docker tag ${MY_REGISTRY}/k8s-gcr-io-coredns:1.1.3 k8s.gcr.io/coredns:1.1.3echo ""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-reloadsystemctl restart kubelet
感谢你能够认真阅读完这篇文章,希望小编分享的"Ubuntu 18.04 LTS如何安装Kubernetes 1.11"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!