天天看點

Kubernetes 部署配置詳解

Kubernetes 部署配置詳解

鏡像下載下傳、域名解析、時間同步請點選

阿裡巴巴開源鏡像站

一、部署說明

1. Kubernetes 叢集部署

在阿裡雲上,容器服務提供了一鍵式的Kubernetes部署,但很多場景應用下需要搭建自托管的Kubernetes叢集。

2. Kubernetes 架構圖

Kubernetes 部署配置詳解

3. 節點資訊

System: CenOS 7.6 - x64
Master 172.20.1.202 kube-controller-manager kube-apiserver kube-scheduler etcd coredns kube-flannel kube-proxy docker-ce
Slave1 172.20.1.203 kube-flannel kube-proxy docker-ce
Slave2 172.20.1.204 kube-flannel kube-proxy docker-ce           

在阿裡雲上,可以直接通過ECS雲伺服器來作為叢集運作環境。

Kubernetes 部署配置詳解

二、配置詳解

1. 基礎配置

基礎工具安裝(以下配置每個節點都需要運作)

yum -y install ntpdate vim wget           

修改各節點主機名

echo k8s-c01-p001 > /etc/hostname
echo k8s-c01-p002 > /etc/hostname
echo k8s-c01-p003 > /etc/hostname           

修改時區及時間

cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 
ntpdate 0.cn.pool.ntp.org           

關閉核心防火牆及系統防火牆

systemctl stop firewalld.service
systemctl disable firewalld.service    
setenforce 0
sed -i 's/=enforcing/=disabled/' /etc/selinux/config           

配置Hosts檔案

tee /etc/hosts <<-'EOF'
172.20.1.202 k8s-c01-p001 
172.20.1.203 k8s-c01-p002 
172.20.1.204 k8s-c01-p003 
EOF           

核心資訊修改

echo "1" > /proc/sys/net/ipv4/ip_forward
echo "1" > /proc/sys/net/bridge/bridge-nf-call-iptables
echo "1" > /proc/sys/net/bridge/bridge-nf-call-ip6tables
tee /etc/sysctl.d/kubernetes.conf <<-'EOF'
net.ipv4.ip_forward = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF           

2. 相關環境配置

Docker RPM倉庫配置

wget -P /etc/yum.repos.d/ https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo           

Kubernetes RPM倉庫配置

wget -P /etc/yum.repos.d/ https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
rpm --import /etc/yum.repos.d/rpm-package-key.gpg
tee /etc/yum.repos.d/kubernetes.repo <<-'EOF'
[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/yum-key.gpg
enabled=1
EOF           

安裝Docker及Kube工具

yum install -y docker-ce kubelet kubeadm kubectl           

啟動docker

systemctl start docker           

關閉虛拟記憶體

swapoff -a
echo "KUBELET_EXTRA_ARGS=\"--fail-swap-on=false\"" > /etc/sysconfig/kubelet           

配置自啟動

systemctl enable kubelet docker           

檢視需要用到的鏡像,如果遇到牆的問題,可以在牆外下載下傳完拉回來

kubeadm config images list
kubeadm config images pull           

初始化管理節點 隻需要Master運作

kubeadm init --kubernetes-version=v1.16.0 --pod-network-cidr=10.1.0.0/16 --service-cidr=10.2.0.0/16 --ignore-preflight-errors=Swap           
Kubernetes 部署配置詳解

配置kubectl連接配接資訊

mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config           

配置網絡插件

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml           
Kubernetes 部署配置詳解

3. 叢集部署

在工作節點加入叢集 隻需要Slave運作

kubeadm join <Master>:6443 --token <Token> \
--discovery-token-ca-cert-hash sha256:<Cert>           
Kubernetes 部署配置詳解

叢集部署完成,檢視叢集節點

kubectl get node -owi           
Kubernetes 部署配置詳解

檢視叢集節點上運作的Pod

kubectl get pods -n kube-system -owide           
Kubernetes 部署配置詳解

建議:優先使用阿裡雲ACK容器服務,較低運維成本,友善管理。

提供全面,高效和穩定的鏡像下載下傳服務。釘釘搜尋 21746399 加入鏡像站官方使用者交流群。”