Ubuntu 18.04 環境下 kubernetes v1.16.2 最新版單機部署日誌

安裝環境

  本次部署使用阿里雲ECSnode

  操做系統: Ubuntu 18.04 64位linux

  實例規格: ecs.c6.large 2U4Ggit

kubernetes 版本說明

  k8s.gcr.io/kube-apiserver:v1.16.2github

  k8s.gcr.io/kube-controller-manager:v1.16.2docker

  k8s.gcr.io/kube-scheduler:v1.16.2shell

  k8s.gcr.io/kube-proxy:v1.16.2json

  k8s.gcr.io/pause:3.1ubuntu

  k8s.gcr.io/etcd:3.3.15-0vim

  k8s.gcr.io/coredns:1.6.2api

配置並更新鏡像源

# 添加鏡像源
cat <<EOF >/etc/apt/sources.list.d/docker-k8s.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable
EOF
 # 更新並安裝
apt update && apt install -y docker-ce kubelet kubeadm kubectl
 # 關閉 swap
swapoff -a

vim /etc/fstab
# 註釋掉這一行
# /swapfile none swap sw 0 0
複製代碼

設置鏡像加速

  進入阿里雲;=》容器鏡像服務=》鏡像中心 =》 鏡像加速器

  頁面會提供配置文檔;當前只給出主要代碼,若是沒有阿里雲帳號,此步驟能夠忽略;

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://{阿里雲分配的地址前綴}.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
複製代碼

下載鏡像包

這裏須要注意:kubernetes 鏡像包是放在 google 容器託管平臺,國內下載會出現超時等狀況

vi k8s-image-pull.sh
 # 一、將對應的包從國內鏡像上拉下來 
# 二、在tag成腳本中須要的image名稱
# 三、移除多餘的image
for i in `kubeadm config images list`; do
    imageName=${i#k8s.gcr.io/}
    docker pull registry.aliyuncs.com/google_containers/$imageName
    docker tag registry.aliyuncs.com/google_containers/$imageName k8s.gcr.io/$imageName
    docker rmi registry.aliyuncs.com/google_containers/$imageName
done;
複製代碼

kubeadm初始化

# kubeadm初始化
kubeadm init --pod-network-cidr=10.244.0.0/16 -–apiserver-advertise-address=0.0.0.0 --ignore-preflight-errors=NumCPU
 # --apiserver-bind-port API server 將綁定的端口。默認爲 6443。
# --apiserver-advertise-address 這是 API server 用來告知集羣中其它成員的地址,這也是在 init 流程的時候用來構建 kubeadm join 命令行的地址。
                                若是不設置(或者設置爲 0.0.0.0)那麼將使用默認接口的 IP 地址。該地址也被添加到 API Server 使用的證書中。
# --ignore-preflight-errors=NumCPU 若是隻有一個 cpu 請加參數
# kubeadm init 輸出的 token 用於 master 和加入節點間的身份認證,token 是機密的,須要保證它的安全,由於擁有此標記的人均可以隨意向集羣中添加節點。
複製代碼

設置網絡插件

export KUBECONFIG=/etc/kubernetes/admin.conf 
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
複製代碼

下載kubernetes-dashboard recommended.yaml

wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.0-beta5/aio/deploy/recommended.yaml
 # 在須要作外網映射的狀況下,咱們使用nodeport方式訪問,此段也能夠忽略
vi recommended.yaml
 # spec:下邊添加 type: NodePort
# targetPort 下邊添加 nodePort: 30001
複製代碼

下載kubernetes-dashboard 鏡像

# 拉取 kubernetes-dashboard 鏡像, 注意版本, 可在 kubernetes-dashboard.yaml 文件中查看
docker pull kubernetesui/dashboard:v2.0.0-beta5
 # 官方Kubernetes儀表板映像已從k8s.gcr.io註冊表移至kubernetesui/dashboard。
# 咱們仍將嘗試從提供圖像k8s.gcr.io,可是要推送這些圖像,須要Google員工的幫助。
# 目前只有從 v2.0.0-beta1 以及之後的版本
 # 安裝 kubernetes-dashboard 
kubectl create -f kubernetes-dashboard.yaml 
 # 查看安裝結果 
kubectl get pod --namespace=kubernetes-dashboard

kubectl get pod --namespace=kube-system
# 從 v2.0.0-beta1 以及之後的版本,已將儀表板從kube-system移至kubernetes-dashboard名稱空間
 # 查看端口 
kubectl get svc --namespace=kube-system
或者
kubectl get svc --namespace=kubernetes-dashboard
查看帳號 
kubectl get sa --all-namespaces
cat <<EOF > admins.yaml
apiVersion: v1 
kind: ServiceAccount 
metadata: 
  labels: 
    k8s-app: kubernetes-dashboard 
  name: admins
  namespace: kubernetes-dashboard 
--- 
apiVersion: rbac.authorization.k8s.io/v1 
kind: ClusterRoleBinding 
metadata: 
  name: admins
roleRef: 
  apiGroup: rbac.authorization.k8s.io 
  kind: ClusterRole 
  name: cluster-admin 
subjects: 
- kind: ServiceAccount 
  name: admins
  namespace: kubernetes-dashboard
EOF
 # 建立用戶
kubectl create -f admins.yaml
複製代碼

獲取用戶token

kubectl describe serviceaccount admins -n kubernetes-dashboard
複製代碼

獲取token

kubectl describe secret admins-token-r5thw -n kubernetes-dashboard
複製代碼

copy token

最後

進行到這裏,就能夠使用外網地址訪問了

https://外網ip:30001

選擇token 貼入 copy的token信息

相關文章
相關標籤/搜索