使用kubeadm安裝k8s時,有一步驟時下載images操做,通常度不少使用的方法是:使用docker images下載鏡像再次tag鏡像的名稱,而後初始化的時候在配置集羣子ip信息等
node
以下:docker
1.設置kubelet國內的pause鏡像 cat >/etc/sysconfig/kubelet<<EOF KUBELET_EXTRA_ARGS="--pod-infra-container-image=registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.1" EOF 2.Kubeadm初始化 # 初始化時報錯提示沒有鏡像文件,須要先下載在初始化(下面腳本只適用1.15.3版本) name=(kube-apiserver:v1.15.3空格kube-controller-manager:v1.15.3空格kube-scheduler:v1.15.3空格kube-proxy:v1.15.3空格pause:3.1空格etcd:3.3.10 coredns:1.3.1) # 修改鏡像的名稱 for info in ${name[@]} do docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$info docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$info k8s.gcr.io/$info docker rmi registry.cn-hangzhou.aliyuncs.com/google_containers/$info Done #初始化master #kubectl --version#查看版本 #kubeadm init --kubernetes-version=v1.15.3 --pod-network-cidr=10.1.0.0/16 #--apiserver-advertise-address=192.168.191.11 --ignore-preflight-errors=Swap
在此給你們介紹一個簡單的方法bootstrap
#在得到vip的master節點上生成創始化配置文件 api
kubeadm config print init-defaults > kubeadm-init.yaml #必須是yaml格式的文件bash
apiVersion: kubeadm.k8s.io/v1beta2 bootstrapTokens: - groups: - system:bootstrappers:kubeadm:default-node-token token: abcdef.0123456789abcdef ttl: 24h0m0s usages: - signing - authentication kind: InitConfiguration localAPIEndpoint: advertiseAddress: 192.168.191.30 #本機ip bindPort: 6443 nodeRegistration: criSocket: /var/run/dockershim.sock name: k8s-3 taints: - effect: NoSchedule key: node-role.kubernetes.io/master --- apiServer: timeoutForControlPlane: 4m0s apiVersion: kubeadm.k8s.io/v1beta2 certificatesDir: /etc/kubernetes/pki clusterName: kubernetes controlPlaneENDPOINT: "192.168.191.30:58443" #此項如沒有請自行添加,此處請填寫你的高可用的VIP地址及端口 controllerManager: {} dns: type: CoreDNS etcd: local: dataDir: /var/lib/etcd imageRepository: registry.cn-hangzhou.aliyuncs.com/google_containers #國內阿里的k8s鏡像元 kind: ClusterConfiguration kubernetesVersion: v1.17.4 # 鏡像的版本 networking: dnsDomain: cluster.local podSubnet: 10.244.0.0/16 # pod的網段,沒有該設置,須要添加 serviceSubnet: 10.96.0.0/12 scheduler: {} --- #使用ipvs ,須要本身安裝ipvsadm apiVersion: kubeproxy.config.k8s.io/v1alpha1 kind: KubeProxyConfiguration featureGates: SupportIPVSProxyMode: true mode: ipvs
#查看須要的鏡像 app
[root@k8s-3 ~]# kubeadm config images list W0323 17:27:46.000689 63185 validation.go:28] Cannot validate kube-proxy config - no validator is available # 忽略 W0323 17:27:46.001023 63185 validation.go:28] Cannot validate kubelet config - no validator is available k8s.gcr.io/kube-apiserver:v1.17.4 k8s.gcr.io/kube-controller-manager:v1.17.4 k8s.gcr.io/kube-scheduler:v1.17.4 k8s.gcr.io/kube-proxy:v1.17.4 k8s.gcr.io/pause:3.1 k8s.gcr.io/etcd:3.4.3-0 k8s.gcr.io/coredns:1.6.5
#拉取須要的鏡像ide
kubeadm config images pull --config kubeadm-init.yamlgoogle
#初始化spa
kubeadm init --config kubeadm-init.yamlorm