kubernetes-1.23.1部署
- 軟體、鏡像清單
1.1 軟體清單
| 軟體 | 版本 |
|---|---|
| docker-ce.x86_64 | 20.10.12-3.el7 |
| kubeadm.x86_64 | 1.23.1-0 |
| kubectl.x86_64 | 1.23.1-0 |
| kubelet.x86_64 | 1.23.1-0 |
| kubernetes-cni.x86_64 | 0.8.7-0 |
1.2 鏡像清單
#kubernetes鏡像清單
k8s.gcr.io/kube-apiserver:v1.23.1
k8s.gcr.io/kube-controller-manager:v1.23.1
k8s.gcr.io/kube-scheduler:v1.23.1
k8s.gcr.io/kube-proxy:v1.23.1
k8s.gcr.io/pause:3.6
k8s.gcr.io/etcd:3.5.1-0
k8s.gcr.io/coredns/coredns:v1.8.6
# calico鏡像清單
calico/cni:v3.21.4
calico/pod2daemon-flexvol:v3.21.4
calico/node:v3.21.4
- 主機資訊
| hostname | 主機ip | 系統版本 |
|---|---|---|
| master | 192.168.1.94 | CentOS 7.9.2009 |
| Node1 | 192.168.1.114 | CentOS 7.9.2009 |
| Node2 | 192.168.1.115 | CentOS 7.9.2009 |
- 系統基本配置
3.1 關閉selinux,關閉防火墻,關閉交換磁區
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
systemctl stop firewalld && systemctl disable firewalld
swapoff on
sed -i '/swap/s/\(.*\)/#\1/' /etc/fstab
3.2 修改hostname,配置/etc/hosts
hostnamectl set-hostname master
hostnamectl set-hostname node1
hostnamectl set-hostname node2
vim /etc/hosts
192.168.1.94 master
192.168.1.114 node1
192.168.1.115 node2
3.3 配置內核引數
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sudo sysctl --system
- 安裝docker
#安裝必要的一些系統工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
#添加軟體源資訊
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo sed -i 's+download.docker.com+mirrors.aliyun.com/docker-ce+' /etc/yum.repos.d/docker-ce.repo
#更新并安裝Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
#開啟Docker服務
sudo systemctl start docker
#配置 Docker 守護程式,尤其是使用 systemd 來管理容器的 cgroup,配置阿里的鏡像加速器
sudo mkdir /etc/docker
cat <<EOF | sudo tee /etc/docker/daemon.json
{
"exec-opts": ["native.cgroupdriver=systemd"],
"log-driver": "json-file",
"log-opts": {
"max-size": "100m"
},
"storage-driver": "overlay2",
"registry-mirrors": ["https://tbctmogl.mirror.aliyuncs.com"]
}
EOF
sudo systemctl enable docker
sudo systemctl daemon-reload
sudo systemctl restart docker
- 安裝kubeadm,kubectl,kubelet
cat <<EOF > /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
EOF
yum install -y kubelet kubeadm kubectl
#yum install -y --nogpgcheck kubelet kubeadm kubectl 或者使用此命令安裝,忽略gpg檢查
systemctl enable kubelet && systemctl start kubelet
- kubeadm初始化
kubeadm init --apiserver-advertise-address=192.168.1.94 --kubernetes-version v1.23.1 --service-cidr=10.95.0.0/16 --pod-network-cidr=172.15.0.0/16
# 也可以使用kubeadm config print init-defaults > kubeadm-init.yaml 生成初始化檔案,修改檔案里對應配置,使用kubeadm init --config=kubeadm-init.yaml初始化,
#初始化時可以指定倉庫--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers,如果不指定鏡像倉庫,可以提前下載好鏡像后重新tag成官方鏡像名
- 根據初始化提示執行如下命令
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
- 安裝calico網路組件
curl https://docs.projectcalico.org/manifests/calico.yaml -O
vim calico.yaml
#calico.yaml檔案修改如下配置,和初始化時配置的pod網段一致
- name: CALICO_IPV4POOL_CIDR
value: "172.15.0.0/16"
- 加入node節點
#kubeadm初始化成功后會輸出如下命令,到node節點執行即可
kubeadm join 192.168.1.94:6443 --token ivpjhh.qwggppgkbcxdeueg --discovery-token-ca-cert-hash sha256:c60147b6a60214f6c6a37e8a59f9b715e3c7d2d3d6824283aec163072e9b05e3
- 檢查集群狀態
[root@master ~]# kubectl get cs
NAME STATUS MESSAGE ERROR
scheduler Healthy ok
etcd-0 Healthy {"health":"true","reason":""}
controller-manager Healthy ok
[root@master ~]# kubectl get node
NAME STATUS ROLES AGE VERSION
master Ready control-plane,master 10h v1.23.1
node1 Ready <none> 10h v1.23.1
node2 Ready <none> 10h v1.23.1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/413674.html
標籤:其他
上一篇:Linux學習筆記(一)
