kubeadm安装kubernetes和istio记录
周末两天想折腾下k8s和istio学习下。于是用虚拟机搭了一个ubuntu22.04的服务器。
国内、国内、国内环境
我一开始将ip固定成192.168.50.100了
一、使用kubeadm安装单机版的kubernetes
参考链接
Ubuntu 22.04 上安装 Kubernetes 1.24.3
1、修改主机名
要ping一下自己的机器名,如果返回127.0.0.1,请到 /etc/hosts修改成实际的IP地址
我的主机名是http://k8smaster.example.net
2、禁用内存交换以及添加内核设置(不是很明白为什么)
禁用内存交换
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
添加内核设置
sudo tee /etc/modules-load.d/containerd.conf<<EOF
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter
sudo tee /etc/sysctl.d/kubernetes.conf<<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sudo sysctl --system
3、安装containerd(取代docker作为容器运行时)
sudo apt install -y curl gnupg2 software-properties-common apt-transport-https ca-certificates
安装最新版containerd
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 update
sudo apt install -y containerd.io
修改SystemdCgroup=true以及修改镜像地址
重启containerd
sudo systemctl restart containerd
开启自启动
sudo systemctl enable containerd
4、添加apt仓库(才能安装kubeadm)
curl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | sudo apt-key add -
sudo apt-add-repository "deb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial main"
5、安装kubectl、kubeadm、kubelet
sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl
6、kubeadm初始化安装
kubeadm version
sudo kubeadm init --image-repository registry.aliyuncs.com/google_containers --v=5 --control-plane-endpoint=192.168.50.100 --pod-network-cidr=10.244.0.0/16
--control-plane-endpoint= 需要改成自己的主机的地址,我的是192.168.50.100
--pod-network-cidr=10.244.0.0/16 是后面搭建成功后使用flannel分配子网的网段
按照返回结果修改下
mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config
默认不可以调度pod到master节点,通过
kubectl taint nodes --all node-role.kubernetes.io/master-
kubectl taint nodes --all node-role.kubernetes.io/control-plane-
修改master支持调度pod
除了coredns外的其他pod应该都是running
7、安装flannel
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
这里的kube-flannel配置的子网就是上面的网段
之后flannel应该就起来了,logs看下原因,是不是没有配置pod的cidr
二、安装istio
1、下载istio
不要下载最新的,找到对应k8s集群的兼容版本
解压后cp一份 bin目录下的istioctl到/usr/local/bin 目的是为了能使用istioctl
然后执行,安装istio
istioctl manifest apply --set profile=demo
会创建一个istio-system,里面有三个pod
cd samples/add-on
里面有grafana和prometheus
使用kubectl apply -f xxx可以安装。
安装之后需要修改svc类型为NodePort才能用宿主机访问
更细节的内容可以参考
Istio入门二--手把手教你使用Istio - 腾讯云开发者社区-腾讯云
欢迎交流沟通