Ubuntu 18.04 LTS 64位Linux搭建Kubernetes 1.15.3並join子節點的完整過程

一、軟件準備node

 1.一、Ubuntu系統安裝git

https://ubuntu.com/download#download

ubuntu系統須要設置用戶,root默認爲系統的帳戶不能被用戶設置且每一次開機都是隨機密碼。因此要設置自定義用戶而且設置擁有root權限github

 自定義用戶設置擁有root權限有三種方法:web

    一、編輯/etc/passwddocker

sudo vim /etc/passwd
##找到用戶test
test:x:1000:1000::/home/test

##修改權限
test:x:0:0::/home/test

    二、臨時使用root用戶json

##修改密碼
passwd

##登錄root
su root

    三、編輯/etc/sudoersubuntu

vi /etc/sudoers

##新建用戶受權root
# User privilege specification
root   ALL=(ALL:ALL) ALL
test   ALL=(ALL:ALL) ALL

保存以後執行命令
su -

 1.二、虛擬機安裝vim

https://my.vmware.com/web/vmware/info/slug/desktop_end_user_computing/vmware_workstation_pro/14_0

二、設置系統api

 2.一、關閉防火牆網絡

sudo ufw disable
iptables -F && iptables -t nat -F && iptables -t mangle -F && iptables -X

 2.二、關閉swap

##臨時關閉
sudo swapoff -a
##永久關閉
vi /etc/fstab

UUID=ecdeee3f-5b0e-44f7-af33-99e283247b70 / ext4 defaults 0 0
##/swap.img     none    swap    sw      0       0
##修改master的vi /etc/hosts
127.0.0.1 localhost
127.0.1.1 k8s-master

192.168.65.137 k8s-master
192.168.65.138 k8s-node-1
# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

##修改master的vi /etc/hostname
k8s-master

##修改node-1的的vi /etc/hosts
127.0.0.1 localhost
127.0.1.1 k8s-node-1

192.168.65.137 k8s-master
192.168.65.138 k8s-node-1
# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

##修改node-1的vi /etc/hostname
k8s-node-1

三、安裝docker

sudo apt install docker.io
sudo systemctl enable docker

 3.1 、修改docker的Cgroup Driver

cat << EOF > /etc/docker/daemon.json
{
  "exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
##默認
Cgroup Driver: cgroupfs
##修改後
Cgroup Driver: systemd

##查詢docker信息
docker info

四、安裝k8s

apt-get update && apt-get install -y apt-transport-https
##官網給的地址因爲網絡緣由替換成aliyun地址
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
EOF 
apt-get update
apt-get install -y kubelet kubeadm kubectl

 4.一、若是是主節點就執行初始化,若是是node 節點能夠先不執行初始化

sudo kubeadm init --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.15.3 --pod-network-cidr=192.168.0.0/16 --apiserver-advertise-address=192.168.65.137
mkdir -p HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

 4.二、此時的k8s基本安裝了,可是kubectl get nodes時status顯示NoReady,安裝flannel

##任意一個執行
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/bc79dd1505b0c8681ece4de4c0d86c5cd2643275/Documentation/kube-flannel.yml

 4.三、重啓一下

systemctl daemon-reload
systemctl restart kubelet

五、集羣節點

  重複第4步驟,安裝一個子節點。

 5.一、讓node-1機器做爲子節點

kubectl taint nodes --all node-role.kubernetes.io/master-

 5.二、在master機器獲取token,discovery-token-ca-cert-hash

kubeadm token create --print-join-command

這個token是init初始化生成的,有時效性。能夠手動生成

生成token:

##生成
kubeadm token create
##查詢
kubeadm token list

生成discovery-token-ca-cert-hash:

openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'

 5.三、在node-1節點執行

kubeadm join 192.168.65.137:6443 --token 96ux2r.itzmtbmlfk7yegr1 --discovery-token-ca-cert-hash sha256:92ee062053b3516fbfcaa9ce3bf3380b454f0dfddbf769858700789a3e9a31c3

 5.四、查詢集羣節點

kubectl get nodes

六、卸載k8s

kubeadm reset -f
modprobe -r ipip
lsmod
rm -rf ~/.kube/
rm -rf /etc/kubernetes/
rm -rf /etc/systemd/system/kubelet.service.d
rm -rf /etc/systemd/system/kubelet.service
rm -rf /usr/bin/kube*
rm -rf /etc/cni
rm -rf /opt/cni
rm -rf /var/lib/etcd
rm -rf /var/etcd
相關文章
相關標籤/搜索