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

地址Releases · istio/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 - 腾讯云开发者社区-腾讯云

欢迎交流沟通

posted @ 2023-03-19 18:03  菲菲菲菲菲常新的新手  阅读(53)  评论(0编辑  收藏  举报