k8s dockerk個人學習(1)
虛擬機部署k8s
1. 創建虛擬機
虛擬機用的是virtualBox和vagrant工具,百度安裝virtualBox和vagrant
創建vagrant目錄並創建文件Vagrantfile內容為
Vagrant.configure("2") do |config| config.vm.box = "ubuntu/bionic64" config.vm.box_check_update = false config.vm.provider "virtualbox" #config.vm.network "public_network" $num_vms = 3 (1..$num_vms).each do |id| config.vm.define "kube-node#{id+1}" do |node| node.vm.hostname = "kube-node#{id+1}" node.vm.network :private_network, ip: "10.64.4.#{id+1}", auto_config: true config.vm.network "forwarded_port", guest: 8080, host: 8080, auto_correct: true # kube-apiserver config.vm.network "forwarded_port", guest: 8086, host: 8086, auto_correct: true # kubectl proxy config.vm.network "forwarded_port", guest: 443, host: 4443, auto_correct: true # harbor node.vm.provider :virtualbox do |vb, override| vb.name = "kube-node#{id+1}" vb.gui = false vb.memory = 2048 vb.cpus = 1 end end end end
a.進入vagrant目錄下運行命令vagrant up創建虛擬機,這時會創建3臺虛擬機分別是kube-node2,kube-node3,kube-node4
b.設置kube-node2的cpu數為2(安裝k8s時需要),在virtualBox管理器中可以設置
2.配置虛擬機環境
a.進入虛擬機運行命令vagrant ssh kube-node2
b.設置root的登錄密碼輸入命令sudo passwd root 之後輸入2次設置的密碼
c.設置允許遠程登錄修改/etc/ssh/sshd_config文件,執行命令/etc/ssh/sshd_config修改內容
PasswordAuthentication yes UsePAM no PermitRootLogin yes RSAAuthentication yes PubkeyAuthentication yes
sshd_config文件中沒有就添加上有就修改為上述保存退出後,運行命令sudo service sshd restart,其他2臺虛擬機同樣執行
d.修改機器的hostname,hostname -i
返回可路由的IP地址(這是為了解決k8s中Flanne網絡中pod無法互訪)
sudo vim /etc/hosts
將最後一行 127.0.1.1 kube-node2 kube-node2
修改為10.64.4.2 kube-node2 kube-node2
其他2臺機器也改成ip對應的值
3.安裝docker
用root進入,並每臺機器上執行
sudo apt-get update && apt-get install docker.io 命令安裝doucker
4.安裝k8s等工具
用root進入,並每臺機器上執行
a. sudo apt-get update && apt-get install -y apt-transport-https
b. curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add # 添加key
c. 在/etc/apt/sources.list.d/kubernetes.list文件中添加deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main
d. apt-get update # 更新
e. apt-get install -y kubelet kubeadm kubectl #安裝
5.初始化 master
用root進入kube-root2中執行
kubeadm init --apiserver-advertise-address 10.64.4.2 --pod-network-cidr=10.244.0.0/16
執行完可能會報ERROR ImagePull 可能是墻外鏡像下不下來需要FQ,我們可以用阿裏雲免費獲取鏡像.
免費獲取墻外鏡像 https://blog.csdn.net/yjf147369/article/details/80290881
6. 配置 kubectl
切換到普通用戶vagrant下, 執行
su vagrant
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
echo "source <(kubectl completion bash)" >> ~/.bashrc
7.安裝pod網絡,在root用戶下執行
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
8.添加k8s-node3和k8s-node4
在5步驟成功後會有 kubeadm join 10.64.4.2:6443 --token token --discovery-token-ca-cert-hash sha256: 替換相應的值在其他2個節點執行
k8s dockerk個人學習(1)