k8s学习-1

此文用的k8s为1,13,1(网络需要能访问k8s.gcr.io)

准备两个个虚拟机(此处用vagrant)

vagrant init envimation/ubuntu-xenial

修改Vagrantfile
配置网络模式和Ip
config.vm.network "public_network", ip:"192.168.1.30"

配置内存大小,此处2G
config.vm.provider "virtualbox" do |vb|
vb.memory = "2048" 
end

vagrant ssh

安装指定版本docker

sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    software-properties-common
 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
sudo apt-get update
sudo apt-get install docker-ce=18.06.1~ce~3-0~ubuntu(可通过sudo apt-cache policy docker-ce查看所有版本并选择合适的,此处是k8s支持到18.06所以选择这个版本)

安装kubeadm,kubectl,kubelet

apt-get update && apt-get install -y apt-transport-https curl
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -
cat <<EOF >/etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF
apt-get update
apt-get install -y kubelet kubeadm kubectl
apt-mark hold kubelet kubeadm kubectl

安装 k8s

kubeadm init  --kubernetes-version=v1.13.1  --apiserver-advertise-address=192.168.1.30 --pod-network-cidr=10.244.0.0/16

安装网络插件

sysctl net.bridge.bridge-nf-call-iptables=1
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

配置(kubectl会使用到,把这个文件拷贝到其他机器,安装好kubectl也可以访问)

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

安装node节点

在第二台虚拟机上执行(以上的命令是在第一台虚拟机kubeadmin 初始化结束后返回的)
提示:此处记得加上node-name参数或者修改hostname(因为主机名默认是相同的,会有冲突)

 kubeadm join 192.168.1.30:6443 --token uatpe3.t43t7omocf738o3k --discovery-token-ca-cert-hash sha256:a361b23821b2be1c9066feed6edce44508a6743bf5a1ae07ad7387472e855989 -node-name test

验证

 kubectl get nodes

显示

NAME               STATUS   ROLES    AGE     VERSION
base-debootstrap   Ready    master   11m     v1.13.1
test               Ready    <none>   4m17s   v1.13.1

遇到问题

1 token 失效时间默认24小时

可以创建永不过期token

kubeadm token create --ttl 0

2 node-name 冲突导致node join cluster后master执行kubectl get nodes查不到

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容