使用kubeadm快速安裝
kubeadm是一種快速安裝kubernetes的方法,最早的安裝方法是完全通過二進制進行安裝,但是隨着k8s技術的發展出現了使用自身管理組件的方法去安裝,說白了就是先安裝一個kubeadm和一個kubelet.接下來的事情就交給kubeadm去做就好了.
安裝kubeadm
使用Centos7安裝需要手動添加源
#!/bin/bash
cat <<EOF > /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet
systemctl start kubelet
yum install -y bash-completion*
source <(kubectl completion bash)
echo "source <(kubectl completion bash)" >> ~/.bashrc
systemctl enable kubelet.service
腳本參考博客1
安裝kubernets-master
現在我們的服務器已經擁有了kubeadm和kubelet,現在就可以讓kubeadm來幫助我們完成kubernets的安裝.
編輯kubeadm.yaml
apiVersion: kubeadm.k8s.io/v1beta2
kind: InitConfiguration
localAPIEndpoint:
advertiseAddress: 10.1.12.55
nodeRegistration:
taints:
- effect: PreferNoSchedule
key: node-role.kubernetes.io/master
---
apiVersion: kubeadm.k8s.io/v1beta2
kind: ClusterConfiguration
kubernetesVersion: v1.15.0
networking:
podSubnet: 10.244.0.0/16
kubeadm本質上也是去創建pod,默認情況下kubeadm會幫我們生成如下yaml
$ cd /etc/kubernetes/manifests/
$ ls
etcd.yaml kube-apiserver.yaml kube-controller-manager.yaml kube-scheduler.yaml
這些yaml屬於static pod(在kubelet啓動的時候會自動開啓)
在執行kubeadm的時候指定kubeadm.yaml就是爲了指定生成yaml的方式,上文自定義了本地的ip並且使master節點可以部署pod
開始安裝
在開始安裝之前需要準備一下docker的image,因爲kubeadm默認回去國外倉庫拉取鏡像,由於天朝身處高位所以只能另尋出路.
#!/bin/bash
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.15.0
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.15.0
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.15.0
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.15.0
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.3.10
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.3.1
docker pull registry.cn-hangzhou.aliyuncs.com/mirror-suke/flannel:v0.11.0-amd64
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-proxy:v1.15.0 k8s.gcr.io/kube-proxy:v1.15.0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-apiserver:v1.15.0 k8s.gcr.io/kube-apiserver:v1.15.0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-controller-manager:v1.15.0 k8s.gcr.io/kube-controller-manager:v1.15.0
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/kube-scheduler:v1.15.0 k8s.gcr.io/kube-scheduler:v1.15.0
docker tag registry.cn-hangzhou.aliyuncs.com/mirror-suke/flannel:v0.11.0-amd64 quay.io/coreos/flannel:v0.11.0-amd64
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/coredns:1.3.1 k8s.gcr.io/coredns:1.3.1
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/etcd:3.3.10 k8s.gcr.io/etcd:3.3.10
docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/pause:3.1 k8s.gcr.io/pause:3.1
做法很簡單就是上阿里雲吧需要的鏡像下載下來然後打上我們需要的tag
接下來直接執行命令安裝即可
$ kubeadm init --config kubeadm.yaml
在執行結果裏會讓我們保存一個token和修改命令的執行權限:
- 返回給我們的命令可以用來在其他服務器增加node
- 修改權限是爲了讓我們可以使用kubectl
$ mkdir -p $HOME/.kube
$ sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
$ sudo chown $(id -u):$(id -g) $HOME/.kube/config
安裝網絡插件
安裝完成後執行命令查看狀態
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master Ready master 3h14m v1.15.3
k8s-work01 Ready <none> 101m v1.15.3
k8s-work02 Ready <none> 76m v1.15.3
如果出現NoReady是因爲我們還需要安裝網絡插件
$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
$ kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/k8s-manifests/kube-flannel-rbac.yml
安裝完成之後就會變成Ready的狀態
現在我們的master基本上就已經安裝完成了.
安裝kubenetes-work
work節點安裝相對容易很多,原理和master一樣:
- 安裝kubeadm和kubelet
- 下載需要的鏡像
- 將master返回的命令執行
執行命令查看即可
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master Ready master 3h14m v1.15.3
k8s-work01 Ready <none> 101m v1.15.3
k8s-work02 Ready <none> 76m v1.15.3
Kubectl 多集羣合併
mac命令自動提示
https://www.cnblogs.com/wzxmt/p/11160256.html ↩︎