K8S/Kubernetes 使用国内源安装k8s

使用国内源安装k8s

安装过程中的问题https://kubernetes.io/docs/setup/independent/install-kubeadm/官网ubuntu安装命令apt-getupdate&&apt-getinstall-yapt-transport-httpscurl curl-shttps://packages.cloud.google...

安装过程中的问题

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 <<EOF >/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

 

2swap问题

kubernetes需要关闭swap

swapoff -a

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

3image问题

安装好kubectlkubeadmkubelet之后,使用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]

4join加入master时的问题

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

kubeadm join IP:6443 --token xuzad4.qkfdi57gal2bkobo

 

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

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

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

kubectl get nodes

 

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

可以通过

kubectl get pod --all-namespaces

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

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

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

 


转载于:https://blog.51cto.com/forsk/2319115

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐

  • 浏览量 1067
  • 收藏 0
  • 0

所有评论(0)

查看更多评论 
已为社区贡献466条内容