使用国内源安装k8s

安装过程中的问题

在集贤等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供网站设计制作、成都网站制作 网站设计制作按需定制网站,公司网站建设,企业网站建设,高端网站设计,网络营销推广,成都外贸网站建设公司,集贤网站建设费用合理。

https://kubernetes.io/docs/setup/independent/install-kubeadm/

官网ubuntu安装命令

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 https://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl

 

1、源问题

此处kubernetes的源 我选择的ustc源

因此/etc/apt/sources.list.d/kubernetes.list文件需要添加(ubuntu16.04代号为xenial),

deb https://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main

 

软件源更改 /etc/apt/sources.list

# 默认注释了源码仓库,如有需要可自行取消注释
deb https://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial-security main restricted universe multiverse# 
预发布软件源,不建议启用# deb https://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse
# deb-src https://mirrors.ustc.edu.cn/ubuntu/ xenial-proposed main restricted universe multiverse

 

2、swap问题

kubernetes需要关闭swap

swapoff -a

同时把/etc/fstab包含swap那行记录删掉。

3、image问题

安装好kubectl,kubeadm,kubelet之后,使用kubectl init进行初始化,初始化的时候默认使用国外的镜像。

因此可以使用kubeadm config images lsit --kunernetes-version v1.12.2(自己的版本号)查看k8s都需要那些image,可以事先使用国内能访问的网站下载下来

使用kubeadm初始化的时候无法拉取镜像

推荐使用anjia0532的镜像,机器人自动跟官方同步,非常及时。

docker pull anjia0532/google-containers.kube-controller-manager-amd64:v1.11.2 
docker pull anjia0532/google-containers.kube-apiserver-amd64:v1.11.2 
docker pull anjia0532/google-containers.kube-scheduler-amd64:v1.11.2 
docker pull anjia0532/google-containers.kube-proxy-amd64:v1.11.2 
docker pull anjia0532/google-containers.pause:3.1 
docker pull anjia0532/google-containers.etcd-amd64:3.2.18 
docker pull anjia0532/google-containers.coreDNS:1.1.3

 

然后重新tag

docker tag anjia0532/google-containers.kube-controller-manager-amd64:v1.11.2 k8s.gcr.io/kube-controller-manager-amd64:v1.11.2 
docker tag anjia0532/google-containers.kube-apiserver-amd64:v1.11.2 k8s.gcr.io/kube-apiserver-amd64:v1.11.2 
docker tag anjia0532/google-containers.kube-scheduler-amd64:v1.11.2 k8s.gcr.io/kube-scheduler-amd64:v1.11.2 
docker tag anjia0532/google-containers.kube-proxy-amd64:v1.11.2 k8s.gcr.io/kube-proxy-amd64:v1.11.2 
docker tag anjia0532/google-containers.pause:3.1 k8s.gcr.io/pause:3.1 
docker tag anjia0532/google-containers.etcd-amd64:3.2.18 k8s.gcr.io/etcd-amd64:3.2.18 
docker tag anjia0532/google-containers.coredns:1.1.3 k8s.gcr.io/coredns:1.1.3

 

再删掉原来的image

docker rmi [imagename]

4、join加入master时的问题

因为我的测试机时克隆的,所以3个主机名字是一样的,加入的时候

kubeadm join IP:6443 --token xuzad4.qkfdi57gal2bkobo

 

在master上 kubectl get nodes看不到加入的节点,发现问题的原因是主机名相同,修改主机名,Ubuntu修改方法  编辑/etc/hostname

修改完成之后使用kubeadm reset在节点主机上使用,重置,然后在使用kubeadm join命令,加入成功。

5、join之后各节点需要运行一些组件

kubectl get nodes

 

可以查看到现有的节点仍处于not ready状态,当各节点需要运行的组件都启动正常之后会变为ready状态

可以通过

kubectl get pod --all-namespaces

查看组件启动情况,若有组件未启动成功,可以使用

kubectl describe pod (上一命令查到的NAME) --namespace=kube-system

节点在ready的时候会创建一些容器,需要上边列出的7个image中的一些,所以在节点机器上也要下载部分第3部中的image

 


分享名称:使用国内源安装k8s
文章链接:http://pwwzsj.com/article/ppsghs.html