部署k8s1.16.0版本(成功)
一、環境
? 安裝docker-ce 18.09.9(所有機器)
? 設置k8s環境前置條件(所有機器)
? 安裝k8s v1.16.0 master管理節點
? 安裝k8s v1.16.0 node工作節點
? 安裝flannel(master)
? linux發行版:CentOS7(2g內存,2個cpu)
? linux內核(使用uname -r查看):3.10.0-957.el7.x86_64
? master和node節點通信的ip(master):192.168.198.110,(node3):192.168.198.120
二、安裝docker-ce 18.09.9(所有機器)
所有安裝k8s的機器都需要安裝docker,命令如下:
# 安裝docker所需的工具
yum install -y yum-utils device-mapper-persistent-data lvm2
# 配置阿里云的docker源
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 指定安裝這個版本的docker-ce
yum install -y docker-ce-18.09.9-3.el7
# 啟動docker
systemctl start docker && systemctl enable docker
三、設置k8s環境準備條件(所有機器)
# 關閉防火墻
systemctl disable firewalld
systemctl stop firewalld
# 關閉selinux
# 臨時禁用selinux
setenforce 0
# 永久關閉 修改/etc/sysconfig/selinux文件設置
sed -i 's/SELINUX=permissive/SELINUX=disabled/' /etc/sysconfig/selinux
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
# 禁用交換分區
swapoff -a
# 永久禁用,打開/etc/fstab注釋掉swap那一行。
sed -i 's/.*swap.*/#&/' /etc/fstab
# 修改內核參數
cat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
四、 安裝k8s v1.16.0 master管理節點
1. 安裝kubeadm、kubelet、kubectl
由于官方k8s源在google,國內無法訪問,這里使用阿里云yum源
# 執行配置k8s阿里云源
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
# 安裝kubeadm、kubectl、kubelet
yum install -y kubectl-1.16.0-0 kubeadm-1.16.0-0 kubelet-1.16.0-0
# 啟動kubelet服務
systemctl enable kubelet && systemctl start kubelet
2. 初始化k8s
kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.16.0 --apiserver-advertise-address 192.168.198.110 --pod-network-cidr=10.244.0.0/16 --token-ttl 0
上面安裝完后,會提示你輸入如下命令,復制粘貼過來,執行即可。
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
3. 記住node加入集群的命令 上面kubeadm init執行成功后會返回給你node節點加入集群的命令,等會要在node節點上執行,需要保存下來,如果忘記了,可以使用如下命令獲取。
kubeadm token create --print-join-command
五、安裝k8s v1.16.0 node工作節點
1. 安裝kubeadm、kubelet
# 執行配置k8s阿里云源
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
# 安裝kubeadm、kubectl、kubelet
yum install -y kubeadm-1.16.0-0 kubelet-1.16.0-0
# 啟動kubelet服務
systemctl enable kubelet && systemctl start kubelet
2. 加入集群 這里加入集群的命令每個人都不一樣,可以登錄master節點,使用kubeadm token create --print-join-command 來獲取。獲取后執行如下。
# 加入集群,如果這里不知道加入集群的命令,可以登錄master節點,使用kubeadm token create --print-join-command 來獲取
kubeadm join 192.168.198.120:6443 --token tgri7x.ly315jzsqt1hx8kx --discovery-token-ca-cert-hash sha256:4130d848f62a0f46a97836ecc33aecd5c5884022b186f4dfa5bd37865600f747 加入成功后,可以在master節點上使用kubectl get nodes命令查看到加入的節點。
六、安裝flannel(master機器)
以上步驟安裝完后,機器搭建起來了,但狀態還是NotReady狀態,如下圖,master機器需要安裝flanneld。
[root@master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master NotReady master 18h v1.16.0
node3 NotReady <none> 27s v1.16.0
3. 下載官方fannel配置文件 使用wget命令,地址為:
wget https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml)
4. 安裝fannel
kubectl apply -f kube-flannel.yml
七、完成
[root@master ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
master Ready master 18h v1.16.0
node3 Ready <none> 27s v1.16.0
八、部署dashboard
獲取部署dashboard的yaml文件:
wget https://github.com/kubernetes/dashboard/blob/master/aio/deploy/recommended.yaml
mv recommended.yaml dashboard.yaml
vim dashboard.yaml 編輯以下內容
-----------------------------------------------------------------------------------------
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: kubernetes-dashboard
name: kubernetes-dashboard
namespace: kubernetes-dashboard
spec:
type: NodePort #添加端口類型
ports:
- port: 443
targetPort: 8443
nodePort: 30001 #指定端口,不然會隨機開啟
selector:
k8s-app: kubernetes-dashboard
-------------------------------------------------------------------------------------------
創建服務
kubectl apply -f dashboard.yaml
創建sa
kubectl create serviceaccount dashboard-admin -n kubernetes-dashboard
綁定集群管理員
kubectl create clusterrolebinding dashboard-cluster-admin --clusterrole=cluster-admin --serviceaccount=kubernetes-dashboard:dashboard-admin
獲取token
kubectl describe secrets
網頁登錄https://ip:30001
刪除資源
kubectl delete -f dashboard.yaml

浙公網安備 33010602011771號