K8s

kubernetes -- 01

kubernetes 安裝

倉庫初始化

1、重新購買云主機
主機名稱 IP地址 最低配置
registry 192.168.1.100 1CPU,1G內(nèi)存
2、安裝倉庫服務(wù)
[root@registry ~]# yum makecache
[root@registry ~]# yum install -y docker-distribution
[root@registry ~]# systemctl enable --now docker-distribution
3、使用腳本初始化倉庫

拷貝云盤 kubernetes/v1.17.6/registry/myos目錄 到 倉庫服務(wù)器

[root@registry ~]# cd myos
[root@registry ~]# chmod 755 init-img.sh
[root@registry ~]# ./init-img.sh
[root@registry ~]# curl http://192.168.1.100:5000/v2/myos/tags/list
{"name":"myos","tags":["nginx","php-fpm","v1804","httpd"]}

kube-master安裝

按照如下配置準備云主機

主機名 IP地址 最低配置
master 192.168.1.21 2CPU,2G內(nèi)存
node-0001 192.168.1.31 2CPU,2G內(nèi)存
node-0002 192.168.1.32 2CPU,2G內(nèi)存
node-0003 192.168.1.33 2CPU,2G內(nèi)存
registry 192.168.1.100 1CPU,1G內(nèi)存
1、防火墻相關(guān)配置

參考前面知識點完成禁用 selinux,禁用 swap,卸載 firewalld-*

2、配置yum倉庫(跳板機)
[root@ecs-proxy ~]# cp -a v1.17.6/k8s-install  /var/ftp/localrepo/
[root@ecs-proxy ~]# cd /var/ftp/localrepo/
[root@ecs-proxy localrepo]# createrepo --update .
3、安裝軟件包(master)

安裝kubeadm、kubectl、kubelet、docker-ce

[root@master ~]# yum makecache
[root@master ~]# yum install -y kubeadm kubelet kubectl docker-ce
[root@master ~]# mkdir -p /etc/docker
[root@master ~]# vim /etc/docker/daemon.json 
{
    "exec-opts": ["native.cgroupdriver=systemd"],
    "registry-mirrors": ["https://hub-mirror.c.163.com"],
    "insecure-registries":["192.168.1.100:5000", "registry:5000"]
}
[root@master ~]# systemctl enable --now docker kubelet
[root@master ~]# docker info |grep Cgroup
Cgroup Driver: systemd
4、鏡像導入私有倉庫
# 把云盤 kubernetes/v1.17.6/base-images 中的鏡像拷貝到 master
[root@master ~]# cd base-images/
[root@master base-image]# for i in *.tar.gz;do docker load -i ${i};done
[root@master base-image]# docker images
[root@master base-image]# docker images |awk '$2!="TAG"{print $1,$2}'|while read _f _v;do
    docker tag ${_f}:${_v} 192.168.1.100:5000/${_f##*/}:${_v}; 
    docker push 192.168.1.100:5000/${_f##*/}:${_v}; 
    docker rmi ${_f}:${_v}; 
done
# 查看驗證
[root@master base-image]# curl http://192.168.1.100:5000/v2/_catalog
5、Tab鍵設(shè)置
[root@master ~]# kubectl completion bash >/etc/bash_completion.d/kubectl
[root@master ~]# kubeadm completion bash >/etc/bash_completion.d/kubeadm
[root@master ~]# exit
6、安裝IPVS代理軟件包
[root@master ~]# yum install -y ipvsadm ipset
7、配置master主機環(huán)境
[root@master ~]# vim /etc/hosts
192.168.1.21    master
192.168.1.31    node-0001
192.168.1.32    node-0002
192.168.1.33    node-0003
192.168.1.100   registry
[root@master ~]# vim /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
[root@master ~]# modprobe br_netfilter
[root@master ~]# sysctl --system
8、使用kubeadm部署

應答文件在云盤的 kubernetes/v1.17.6/config 目錄下

[root@master ~]# mkdir init;cd init
# 拷貝 kubeadm-init.yaml 到 master 云主機 init 目錄下
[root@master init]# kubeadm init --config=kubeadm-init.yaml |tee master-init.log
# 根據(jù)提示執(zhí)行命令
[root@master init]# mkdir -p $HOME/.kube
[root@master init]# sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
[root@master init]# sudo chown $(id -u):$(id -g) $HOME/.kube/config
9、驗證安裝結(jié)果
[root@master ~]# kubectl version
[root@master ~]# kubectl get componentstatuses
NAME                        STATUS          MESSAGE                 ERROR
controller-manager          Healthy         ok
scheduler                   Healthy         ok
etcd-0                      Healthy         {"health":"true"}

計算節(jié)點安裝

1、獲取token
# 創(chuàng)建token
[root@master ~]# kubeadm token create --ttl=0 --print-join-command
[root@master ~]# kubeadm token list
# 獲取token_hash
[root@master ~]# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt |openssl rsa -pubin -outform der |openssl dgst -sha256 -hex
2、node安裝

拷貝云盤上 kubernetes/v1.17.6/node-install 到跳板機

[root@ecs-proxy ~]# cd node-install/
[root@ecs-proxy node-install]# vim files/hosts
::1             localhost localhost.localdomain localhost6 localhost6.localdomain6
127.0.0.1       localhost localhost.localdomain localhost4 localhost4.localdomain4
192.168.1.21    master
192.168.1.31    node-0001
192.168.1.32    node-0002
192.168.1.33    node-0003
192.168.1.100   registry
[root@ecs-proxy node-install]# vim node_install.yaml
... ...
  vars:
    master: '192.168.1.21:6443'
    token: 'fm6kui.mp8rr3akn74a3nyn'
    token_hash: 'sha256:f46dd7ee29faa3c096cad189b0f9aedf59421d8a881f7623a543065fa6b0088c'
... ...
[root@ecs-proxy node-install]# ansible-playbook node_install.yaml
3、驗證安裝
[root@master ~]# kubectl get nodes
NAME        STATUS     ROLES    AGE     VERSION
master      NotReady   master   130m    v1.17.6
node-0001   NotReady   <none>   2m14s   v1.17.6
node-0002   NotReady   <none>   2m15s   v1.17.6
node-0003   NotReady   <none>   2m9s    v1.17.6

網(wǎng)絡(luò)插件安裝配置

拷貝云盤 kubernetes/v1.17.6/flannel 目錄到 master 上

1、上傳鏡像到私有倉庫
[root@master ~]# cd flannel
[root@master flannel]# docker load -i flannel.tar.gz
[root@master flannel]# docker tag quay.io/coreos/flannel:v0.12.0-amd64 192.168.1.100:5000/flannel:v0.12.0-amd64
[root@master flannel]# docker push 192.168.1.100:5000/flannel:v0.12.0-amd64
2、修改配置文件并安裝
[root@master flannel]# vim kube-flannel.yml
128: "Network": "10.244.0.0/16",
172: image: 192.168.1.100:5000/flannel:v0.12.0-amd64
186: image: 192.168.1.100:5000/flannel:v0.12.0-amd64
227-結(jié)尾: 刪除
[root@master flannel]# kubectl apply -f kube-flannel.yml
3、驗證結(jié)果
[root@master flannel]# kubectl get nodes
NAME        STATUS  ROLES   AGE     VERSION
master      Ready   master  26h     v1.17.6
node-0001   Ready   <none>  151m    v1.17.6
node-0002   Ready   <none>  152m    v1.17.6
node-0003   Ready   <none>  153m    v1.17.6
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容