【K8S】之 下载Kubeadm、node组件和命令行工具
文章目录
-
一、安装kubeadm、kubelet和kubectl
-
(1)添加kubernets apt源公钥文件 * (2)加入kubernetes的官方源 * (3)安装工具
1 * 二、核心组件镜像下载 2
-
-
先查看kubeadm版本 * 2. 再根据查看其所需镜像 * 3. 拉取
K8S1`
的包并打 tag(标签) * 4. 初始化1`
- 三、验证master节点的引导结果
- 四、配置 kubectl
- 五、安装集群网络(安装 Pod 网络)
- 六、验证
- 七、参考资料
-
一、安装kubeadm、kubelet和kubectl
(1)添加kubernets apt源公钥文件
有两种方法:
直接执行下面命令(需要科学上网)
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add-
(无需科学上网)
先:
wget https://raw.githubusercontent.com/EagleChen/kubernetes_init/master/kube_apt_key.gpg
再:
cat kube_apt_key.gpg | apt-key add -
(2)加入kubernetes的官方源
在该文件中,加入kubernetes的官方源
有两种方法:
- 直接操作
vi /etc/apt/sources.list.d/kubernetes.list
1deb http://apt.kubernetes.io/ kubernetes-xenial main 2 3
可不可以,看包更新是否成功
更新本地包 apt-get update
- 使用镜像
echo "deb [arch=amd64] https://mirrors.ustc.edu.cn/kubernetes/apt kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list
更新本地包 apt-get update
-
使用 aliyun 源
1apt-get update && apt-get install -y apt-transport-https 2curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - 3cat <<EOF >/etc/apt/sources.list.d/kubernetes.list 4deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main 5EOF 6 7
(3)安装工具
apt-get install -y --allow-unauthenticated kubelet kubeadm kubectl
--allow-unauthenticated 可以试试不加。
查看kuberadm 的当前版本
kubeadm version
查看kubectl 的当前版本
kubectl version
查看kubelet当前状态
systemctl status kubelet
二、核心组件镜像下载
下载方式:
- kubeadm 默认从k8s.gcr.io(老版本:gcr.io/google_containers)上下载核心组件镜像
- K8s 1.8之前可以通过KUBE_REPO_PREFIX 指定其他k8s镜像仓库前缀
- 手工将镜像下载到本地主机
采用第三种(手工下载镜像)
1. 先查看kubeadm版本
kubeadm version
2. 再根据查看其所需镜像
kubeadm config images list --kubernetes-version v1.12.3
3. 拉取K8S 的包并打 tag(标签)
拉取镜像
1docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver-amd64:v1.12.3 2docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager-amd64:v1.12.3 3docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler-amd64:v1.12.3 4docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy-amd64:v1.12.3 5 6docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd-amd64:3.2.24 7docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1 8docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.2.2 9 10
打标签
1 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler-amd64:v1.12.3 k8s.gcr.io/kube-scheduler:v1.12.3 2 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager-amd64:v1.12.3 k8s.gcr.io/kube-controller-manager:v1.12.3 3 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver-amd64:v1.12.3 k8s.gcr.io/kube-apiserver:v1.12.3 4 docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy-amd64:v1.12.3 k8s.gcr.io/kube-proxy:v1.12.3 5 6docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1 k8s.gcr.io/pause:3.1 7docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.2.2 k8s.gcr.io/coredns:1.2.2 8docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd-amd64:3.2.24 k8s.gcr.io/etcd:3.2.24 9 10
可以删除多余标签
docker rmi $(docker images | grep "^registry.cn-hangzhou.aliyuncs.com")
4. 初始化
kubeadm init --apiserver-advertise-address 10.0.2.15 --pod-network-cidr=192.168.16.0/20
--apiserver-advertise-address 指明用 Master 的哪个 interface 与 Cluster 的其他节点通信。
--pod-network-cidr= 指定 Pod 网络的范围。 Kubernetes 支持多种网络方案,而且不同网络方案对 --pod-network-cidr 有自己的要求
关闭Swap
vi /etc/fstab
把最后的swap分区注释掉
然后重启此节点 reboot now
1 kubeadm join 10.0.2.15:6443 --token r6yz3v.c35eyym0a7dpgz86 --discovery-token-ca-cert-hash sha256:93d721518f5a4d42a6df0bd5cbcfdbe9ed2f7935cf0efaaace241d10d5cf61f6 2 3
三、验证master节点的引导结果
- 设置环境变量
export KUBECONFIG=/etc/kubernetes/admin.conf
查看master 运行情况
kubectl get pods -n kube-system -o wide
四、配置 kubectl
推荐用 Linux 普通用户执行 kubectl (root 会有一些问题)
为 donald 用户配置 kubectl:(donald 是 我这边的用户)
1su - donald 2mkdir -p $HOME/.kube 3sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config 4sudo chown $(id -u):$(id -g) $HOME/.kube/config 5 6# 启动 kubectl 自动补全功能 7echo "source < (kubectl completion bash)" >> ~/.bashrc 8 9
五、安装集群网络(安装 Pod 网络)
这里选择安装 Weave Net
直接安装(可能会出错)
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')"
间接
curl -L "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 | tr -d '\n')" > weave.yaml
vi weave.yaml
添加环境变量
1- name : IPALLOC_RANGE 2 value: 192.168.16.0/20 3 4
kubectl apply -f weave.yaml
六、验证
查看master 运行情况
kubectl get pods -n kube-system -o wide
有个疑问?
为嘛我这没有 kube-dns呢?
Kubernetes 1.11已经使用coredns替换了kube-dns