k8s安装和测试部署
k8s安装和部署
·
关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
关闭 selinux(安全策略)
sed -i 's/enforcing/disabled/' /etc/selinux/config
setenforce 0
关闭 swap(内存交换)
临时关闭:swapoff -a
永久关闭:sed -ri 's/.swap./#&/' /etc/fstab
验证,swap 必须为 0:free -g
添加主机名与IP映射
vi /etc/hosts
172.19.139.127 K8s-master
172.19.139.125 k8s-salve-01
172.19.139.126 k8s-salve-02
将桥接的 IPv4 流量传递到 iptables 的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system
安装Docker博客地址
https://blog.csdn.net/weixin_45031570/article/details/127794675?spm=1001.2014.3001.5501
设置阿里云yum源
cat > /etc/yum.repos.d/kubernetes.repo << EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
repo_gpgcheck=0
gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpg
https://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpg
EOF
集群环境下每个节点都安装 kubeadm ,kubelet 和 和 kubectl
yum install -y kubelet-1.17.3 kubeadm-1.17.3 kubectl-1.17.3
--设置kubelet开机启动:
systemctl enable kubelet
--开启kubelet默认是起不来的,后面会处理
systemctl start kubelet
Master节点初始化(只对master操作):
1)拉取代码所需镜像:
执行权限chmod 700 master_images.sh
执行 ./master_images.sh
,文件如下:
#!/bin/bash
images=(
kube-apiserver:v1.17.3
kube-proxy:v1.17.3
kube-controller-manager:v1.17.3
kube-scheduler:v1.17.3
coredns:1.6.5
etcd:3.4.3-0
pause:3.1
)
for imageName in ${images[@]} ; do
docker pull registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
# docker tag registry.cn-hangzhou.aliyuncs.com/google_containers/$imageName
k8s.gcr.io/$imageName
done
2).kubeadm 初始化:
192.168.182.130这个是master节点地址
kubeadm init \
--apiserver-advertise-address=192.168.182.130 \
--image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
--kubernetes-version v1.17.3 \
--service-cidr=10.96.0.0/16 \
--pod-network-cidr=10.244.0.0/16
3).保存kubeadm token信息(这个步骤是基于{ kubeadm 初始化}上一个步骤)
当步骤二kubeadm 初始化后,会在linux中生成以下的token令牌,复制这段代码到子节点中就可以配置成集群了
kubeadm join 192.168.182.130:6443 --token xiyzhk.o26530jlgl6ygxei \
--discovery-token-ca-cert-hash sha256:61c6e872765a61d530bdc368c5b174988ab77faef62a3caba54c5332a202496b
token过期怎么获取
- kubeadm token create --print-join-command
- kubeadm token create --ttl 0 --print-join-command 永久不会过期
安装POD网络插件(CNI)
kubectl apply -f kube-flannel.yml
kubectl命令操作:
kubectl get nodes 查询当前主节点加入节点,必须所有节点状态都是Ready状态
watch kubectl get pod -n kube-system -o wide 查看Pod初始化进度
kubectl get pods -n kube-system 查看指定名称空间的pods
kubectl get pods --all-namespaces 查看所有名称空间的pods;一定得是running状态;
kubectl get all 获取K8s所有资源
kubectl get pods -o wide 获取各节点部署信息
kubectl get svc 查看服务
kubectl get svc -o wide
排错:
在初始化时:this Docker version is not on the list of validated versions: 20.10.21. Latest validated version: 19.03
docker版本不兼容
查看docker 版本
docker version
看到版本是 Version: 20.10.21
kubectl version
kubectl version
Client Version: version.Info{Major:"1", Minor:"17", GitVersion:"v1.17.3",
降低版本
yum downgrade --setopt=obsoletes=0 -y docker-ce-19.03.4 docker-ce-cli-19.03.4 containerd.io
systemctl start docker
docker version
coredns 一直pending
kube-flannel.yml 这个文件不行,去github上找换文件
地址:https://github.com/flannel-io/flannel/blob/master/Documentation/kube-flannel.yml
执行:kubectl apply -f kube-flannel.yml
查看:kubectl get nodes
只要都是ready就是可以了
测试安装Tomcat
在主节点上部署一个Tomcat
kubectl create deployment tomcat6 --image=tomcat:6.0.53-jre8
获取K8s所有资源
kubectl get all
获取各节点部署信息
kubectl get pods -o wide
暴露nginx访问
kubectl expose deployment tomcat6 --port=80 --target-port=8080 --type=NodePort
pod的80映射容器的8080;server会带来pod的80
查看服务
kubectl get svc
kubectl get svc -o wide
访问接口
测试动态扩容
扩容:kubectl scale --replicas=3 deployment tomcat6
缩容:kubectl scale --replicas=1 deployment tomcat6
删除部署
kubectl delete service/tomcat6
安装Ingress
部署Ingress controller
kubectl apply -f ingress-controller.yaml
测试
touch ingress-tomcat6.yaml
kubectl apply -f ingress-tomcat6.yaml
kubesphere
更多推荐
已为社区贡献1条内容
所有评论(0)