Kubenets 123

安裝kubernets環境破費周折,特此記錄整個過程

第一步: VirtualBox安裝CentOS7 64系統。用什麼環境無所謂
(1)系統下載地址如下。下載CentOS-7-x86_64-Minimal-1908.iso就可以,DVD或者Everything太大了,用不着
http://mirrors.aliyun.com/centos/7/isos/x86_64/
(2)安裝完成後,用系統賬號登錄進去,網絡不通,我的機器上是,需要手動把網絡配置修改爲橋接模式,如下圖。配置修改後重啓機器。
在這裏插入圖片描述
(3)再次登錄進去,執行命令dhclient 爲本機動態分配一個ip地址,發現這個ip地址跟宿主機是一個號段的,先不管只要能訪問網絡就行。執行ip addr命令就可以看到分配的地址了。配置啓動自動化獲取IP地址,修改文件/etc/sysconfig/network-scripts/ifcfg-enp0s3設置裏面的ONBOOT=yes
(4)yum鏡像配置。默認官方的軟件倉庫,在國內使用太慢了,國內的鏡像地址可選擇性很多。具體替換鏡像的方式如下:

# 1. 進入yum倉庫配置未知
cd /etc/yum.repos.d/
# 2. 備份官方鏡像
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 3. 下載163鏡像文件。如果發現wget命令沒有安裝,使用yum install wget先安裝wget
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
# 4. 生成緩存
yum makecache
# 5. update一下
yum -y update
# OK Done。

使用阿里雲的鏡像也是一樣的,把上面的第3不下載163鏡像換成下載阿里雲鏡像既可以。
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

至此虛擬機已經安裝完畢。

二、安裝Docker
官方教程在此教程關鍵步驟摘錄於此

# 安裝必須依賴
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 設置docker穩定版倉庫
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安裝docker
sudo yum install docker-ce docker-ce-cli containerd.io
# 設置docker 開機啓動,並啓動docker
sudo systemctl enable docker && systemctl start docker
# 測試hello_world鏡像
sudo docker run hello-world
# 你會發現上面需要login,沒有什麼好說的,使用自己在https://hub.docker.com上註冊的賬號和地址即可
docker login
# 再次測試hello-wold
sudo docker run hello-world

已經安裝完成,但是在測試hello-world時會發現特別慢,時因爲docker的官方倉庫在國內訪問同樣是非常慢的,因此我們也需要綁定國內的鏡像。國內的鏡像有http://hub-mirror.c.163.com https://registry.docker-cn.com 以及阿里雲的https://xxxxxx.mirror.aliyuncs.com阿里雲的配置參考配置阿里雲私有鏡像加速器

# 配置鏡像地址
echo '{
 "registry-mirrors":["http://hub-mirror.c.163.com"]
}' > /etc/docker/daemon.json
# 配置之後重啓docker
systemctl restart docker

三、安裝kubernetes Master以v1.14.2爲例。因爲學習是使用的是《Kubernets權威指南(第四版)》
(1)安裝kubeadmin和相關工具

# 配置國內阿里雲kubernets鏡像
cd /etc/yum.repos.d/
touch kubernetes.repo
# 將下面的內容複製到kubernetes.repo文件中
[kubernetes]
name=Kubernetes Repo
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
enabled=1
# 安裝 kubelet kubeadm kubectl
yum install -y kubelet-1.14.2 kubeadm-1.14.2 kubectl-1.14.2 --disableexcludes=kubernetes
# 啓動kubelet
systemctl enable kubelet && systemctl start kubelet

(2)下載kubernets鏡像
注意配置文件中的imageRepository, 我使用的是阿里雲的鏡像,不指定這個參數會使用谷歌的k8s.gcr.io,在國內無法使用

# 構造配置文件如下
touch init-config.yaml
#文件內容如下,請自行復制
apiVersion: kubeadm.k8s.io/v1beta1
kind: ClusterConfiguration
imageRepository: registry.aliyuncs.com/google_containers
kubernetesVersion: v1.14.0
networking:
  podSubnet: "192.168.0.0/16"

# 下載鏡像
kubeadm config images pull --config=init-config.yaml
# 會下載得到如下鏡像
docker images
REPOSITORY                                                        TAG                 IMAGE ID            CREATED             SIZE
registry.aliyuncs.com/google_containers/kube-proxy                v1.14.0             5cd54e388aba        8 months ago        82.1MB
registry.aliyuncs.com/google_containers/kube-scheduler            v1.14.0             00638a24688b        8 months ago        81.6MB
registry.aliyuncs.com/google_containers/kube-apiserver            v1.14.0             ecf910f40d6e        8 months ago        210MB
registry.aliyuncs.com/google_containers/kube-controller-manager   v1.14.0             b95b1efa0436        8 months ago        158MB
registry.aliyuncs.com/google_containers/coredns                   1.3.1               eb516548c180        10 months ago       40.3MB
hello-world                                                       latest              fce289e99eb9        11 months ago       1.84kB
registry.aliyuncs.com/google_containers/etcd                      3.3.10              2c4adeb21b4f        12 months ago       258MB
registry.aliyuncs.com/google_containers/pause                     3.1                 da86e6ba6ca1        23 months ago       742kB

(3) 初始化Master

# 初始化, 仍然使用下載鏡像是創建的配置文件
kubeadm init --config=init-config.yaml

等待安裝安裝成功後,會打印如下信息。得到如下截圖後,說明Master安裝完成,接着安裝Node,並加入到Master。
在這裏插入圖片描述
(4)安裝Node
重新配置一臺虛擬機,安裝docker, 以及kublet, kubeadm工具。一切準備工作完成後,開始如下的流程將Node加入到Master中

# 啓動docker和kubelet 並配置開機啓動
sudo systemctl enable docker && systemctl start docker
systemctl enable kubelet && systemctl start kubelet

join到master

# 創建配置文件, join-config.yaml,內容如下。其中ip地址是剛剛啓動成功的Master的地址
apiVersion: kubeadm.k8s.io/v1beta1
kind: JoinConfiguration
discovery:
  bootstrapToken:
    apiServerEndpoint: 192.168.*.*:6443
    token: 6ch5h1.u7527dh7nqzeqz32
    unsafeSkipCAVerification: true
  tlsBootstrapToken: 6ch5h1.u7527dh7nqzeqz32

#join, 執行如下命令
kubeadm join --config=join-config.yaml

執行之後會得到如下圖的顯示
在這裏插入圖片描述
但很大的可能是執行上面的join命令後,一直卡着,說明Master機器上有防火牆,可以上Master機器將防火牆關閉,再執行join命令。centos防火牆配置

# 關閉防火牆
systemctl stop firewalld
# 也可以吧6443的端口加入防火牆,然後重新加載防火牆配置
firewall-cmd --zone=public --add-port=6443/tcp --permanent
firewall-cmd --reload

(5) 安裝CNI網絡插件

# 執行如下命令
kubectl apply -f "https://cloud.weave.works/k8s/net?k8s-version=$(kubectl version | base64 |tr -d '\n')"

(6) 驗證是否安裝成功

kubectl get pods --all-namespaces

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章