CentOS7安裝單節點k8s

CentOS7安裝單節點k8s

環境

  • 本次安裝使用, CPU: 1核, 內存: 2G, 系統: CentOS7.6
  • 建議至少cpu: 2核 ,內存: 2G,非硬性要求,1核1G也可以搭建起集羣
  1. 安裝並運行docker
  2. 關閉swap swapoff -a
  3. 把hostname的解析添加到hosts中
  4. 添加k8s yum軟件源
# vi /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
  1. 安裝 kubeadm, kubelet 和 kubectl
yum install -y kubelet kubernetes-cni kubeadm
  1. 配置kubeadm的yaml文件
# vi kubeadm.yaml
apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
kubernetesVersion: "v1.16.2"
imageRepository: "registry.aliyuncs.com/google_containers"
networking:
  podSubnet: "10.244.0.0/16"
  1. 拉取鏡像
kubeadm --config kubeadm.yaml config images pull
  1. 轉換鏡像的tag,根據自己下載的版本轉換
docker tag registry.aliyuncs.com/google_containers/kube-proxy:v1.16.2 k8s.gcr.io/kube-proxy:v1.16.2
docker tag registry.aliyuncs.com/google_containers/kube-scheduler:v1.16.2 k8s.gcr.io/kube-scheduler:v1.16.2
docker tag registry.aliyuncs.com/google_containers/kube-apiserver:v1.16.2 k8s.gcr.io/kube-apiserver:v1.16.2
docker tag registry.aliyuncs.com/google_containers/kube-controller-manager:v1.16.2 k8s.gcr.io/kube-controller-manager:v1.16.2
docker tag registry.aliyuncs.com/google_containers/etcd:3.3.15-0 k8s.gcr.io/etcd:3.3.15-0
docker tag registry.aliyuncs.com/google_containers/coredns:1.6.2 k8s.gcr.io/coredns:1.6.2
docker tag registry.aliyuncs.com/google_containers/pause:3.1 k8s.gcr.io/pause:3.1
  1. kubeadm初始化
kubeadm init --pod-network-cidr=10.244.0.0/16 --ignore-preflight-errors=NumCPU 
# --ignore-preflight-errors=NumCPU 忽略cpu錯誤,如果cpu核心數足夠,可以不加.
# 必須要帶上--pod-network-cidr=10.244.0.0/16,不然設置網絡的時候會報錯

# 如果初始化出錯或者想重新初始化,可以使用如下命令
kubeadm reset

# 出現 Your Kubernetes master has initialized successfully!,安裝成功
# 安裝成功後執行
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 node,status爲NotReady,是因爲還沒有網絡插件
  1. 安裝網絡
kubectl apply -f https://github.com/coreos/flannel/raw/master/Documentation/kube-flannel.yml
  1. 安裝Ingress
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/mandatory.yaml
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/master/deploy/static/provider/cloud-generic.yaml

#如果擁有公網ip,需要配置外網訪問,請下載mandatory.yaml,添加, hostNetwork: true,位置如下:
apiVersion: apps/v1
kind: Deployment
spec:
  template:
    spec:
      hostNetwork: true #在此處添加
  1. 設置mater節點爲可調度,因爲默認情況下K8s的master節點是不能運行Pod
kubectl taint nodes --all node-role.kubernetes.io/master-
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章