kubernetes
kubernetes 安裝
倉庫初始化
1赊堪、重新購買云主機(jī)
主機(jī)名稱 | 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 ~]# mkdir myos;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安裝
按照如下配置準(zhǔn)備云主機(jī)
主機(jī)名 | 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)配置
參考前面知識(shí)點(diǎn)完成禁用 selinux脊僚,禁用 swap,卸載 firewalld-*
2遵绰、配置yum倉庫(跳板機(jī))
[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、鏡像導(dǎo)入私有倉庫
# 把云盤 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
# 查看驗(yàn)證
[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主機(jī)環(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部署
應(yīng)答文件在云盤的 kubernetes/v1.17.6/config 目錄下
[root@master ~]# mkdir init;cd init
# 拷貝 kubeadm-init.yaml 到 master 云主機(jī) 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猪腕、驗(yàn)證安裝結(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"}
計(jì)算節(jié)點(diǎn)安裝
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 到跳板機(jī)
[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码撰、驗(yàn)證安裝
[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脖岛、驗(yàn)證結(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